书接上回
我们已经可以使用Appium启动App了。现在我们改成使用脚本启动App,并自动点击按钮。
做个示例,如果我要在启动页点击小姐姐
头像,然后点击开始阅读
,如图:
上面的操作是用鼠标点击完成的,怎么用脚本实现呢?
总共分5步
- 创建python项目
- 安装Appium插件
- 配置Desired Capabilities,并启动app
- 在Appium中获取元素信息
- 通过脚本点击按钮
创建python项目
- 使用pyCharm创建一个
Pure Python
就可以,选择一个项目目录,其他保持不变,直接点Create
,如图:
创建过程中会出现下面的框,稍等片刻就好,
- 在项目名
novel_test
上右键,选择New -> Python File
,创建一个python文件,如图:
在弹出的对话框中输入文件名,比如
main.py
,创建完成后,如图:
安装Appium插件
- 点击pycharm下方的
Terminal
,会打开终端并自动处在当前项目的虚拟环境目录下,方便快捷。如图:
- 执行命令
pip3 install Appium-Python-Client
。如图说明安装成功:
配置Desired Capabilities
- 需要首先引入appium库中的webdriver;
- 用代码进行配置,与在appium的新会话配置的内容是一样的,
- 使用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)
- 在文件中右键,选择
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.