Appium+Python进行iOS App自动化测试(3)第一行自动化脚本

书接上回

我们已经可以使用Appium启动App了。现在我们改成使用脚本启动App,并自动点击按钮。
做个示例,如果我要在启动页点击小姐姐头像,然后点击开始阅读,如图:


上面的操作是用鼠标点击完成的,怎么用脚本实现呢?

总共分5步

  • 创建python项目
  • 安装Appium插件
  • 配置Desired Capabilities,并启动app
  • 在Appium中获取元素信息
  • 通过脚本点击按钮

创建python项目

  1. 使用pyCharm创建一个Pure Python就可以,选择一个项目目录,其他保持不变,直接点Create,如图:

创建过程中会出现下面的框,稍等片刻就好,

  1. 在项目名novel_test上右键,选择New -> Python File,创建一个python文件,如图:


在弹出的对话框中输入文件名,比如main.py,创建完成后,如图:

安装Appium插件

  1. 点击pycharm下方的Terminal,会打开终端并自动处在当前项目的虚拟环境目录下,方便快捷。如图:

  1. 执行命令pip3 install Appium-Python-Client。如图说明安装成功:

配置Desired Capabilities

  1. 需要首先引入appium库中的webdriver;
  2. 用代码进行配置,与在appium的新会话配置的内容是一样的,
  3. 使用webdriver启动app,url为启动appium展示的Host和Port。
    代码如下:
from appium import webdriver

# 配置设备及app信息
desired_caps = dict()
desired_caps['platformName'] = 'iOS'
desired_caps['platformVersion'] = '14.3'
desired_caps['deviceName'] = 'iPhone 12 Pro'
desired_caps['app'] = 'com.xx.xx' # 此处填写你的bundle id

# 启动app
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
  1. 在文件中右键,选择Run 'main',执行main.py文件, 如图:

Tips: 如果报错Message: An unknown server-side error occurred while processing the command. Original error: App with bundle identifier 'com.your.bundleid' unknown,说明你的模拟器上现在还没有安装你要启动的app,需要先打开这个app的项目代码,运行,把app安装到这个模拟器上。再次Run一下就可以了。

在Appium中获取元素信息

可以使用脚本启动app了,下一步就可以用脚本帮我们做事情了。
想要使用脚本点击按钮,首先要获取按钮的信息,这时就需要打开Appium,我们需要借助Appium来获取按钮的信息,先打开这个页面New Session -> 选择之前保存的配置信息 -> Start Session,如下图:


此时我们点击小姐姐的头像,右侧Selected Element区域会显示出这个按钮的所有属性信息,如图:

通过脚本点击按钮

  • 小姐姐头像按钮
    我们可以获取到小姐姐头像按钮的两个属性:
    accessibility id:"img launch girl normal",
    xpath: "//XCUIElementTypeButton[@name="img launch girl normal"]"
    我们使用accessibility id来定位到这个元素,并调用并调用click(),代码如下:
driver.find_element_by_accessibility_id('img launch girl normal').click()

Tips: 也可用xpath获取元素,调用driver的find_element_by_xpath方法即可。

  • 开始阅读按钮
    点击“开始阅读”按钮,查看他的所有属性


Appium提示不建议使用xpath定位元素,那我们可以使用name属性来定位,并调用click(),代码如下:

driver.find_element_by_name('开始阅读').click()

大功告成

至此这个示例的脚本就全部写完了,在main.py中右键,选择Run 'main'跑一下看看吧,效果如下:


完整代码如下:

from appium import webdriver

# 配置设备及app信息
desired_caps = dict()
desired_caps['platformName'] = 'iOS'
desired_caps['platformVersion'] = '14.3'
desired_caps['deviceName'] = 'iPhone 12 Pro'
desired_caps['app'] = '你自己的bundle id'

# 启动app
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

#点击小姐姐头像
driver.find_element_by_accessibility_id('img launch girl normal').click()
#点击"开始阅读"
driver.find_element_by_name('开始阅读').click()
下一篇,配置真机自动化。

Have fun.

你可能感兴趣的:(Appium+Python进行iOS App自动化测试(3)第一行自动化脚本)