前言
Appium 作为一款开源的移动应用自动化测试框架,支持跨平台(iOS 和 Android)测试。其采用 WebDriver 协议,允许使用多种编程语言编写测试脚本,其中 Python 因其简洁性和丰富的库支持成为主流选择之一。
本文在已经完整部署python和appium工具以及所需环境下开展
一、从appium inspector获取元素信息
参考文章安装和部署:【真机测试】Appium Inspector的零基础安装和参数配置
需要先启动运行Appium,在配置inspector并启动
直接进入正题,成功连接手机并控制app开启后,进入下方页面。选择Session Information

在右侧选择区选择我们想要的语言,这里选的是python,直接复制整段代码到pycharm中。
二、调试python
python项目新建完成后,调试代码,安装缺少的插件,直到代码成功运行。

三、python运行
现在,我们可以直接运行python,自带的driver语句会自启动APP
options = AppiumOptions()
options.load_capabilities({
"platformName": "Android",
"appium:deviceName": "设备ID",
"appium:platformVersion": "15",
"appium:appPackage": "com.baidu.searchbox",
"appium:appActivity": ".MainActivity",
"appium:noReset": True,
"appium:dontStopAppOnReset": True,
"appium:automationName": "UiAutomator2",
"appium:ensureWebviewsHavePages": True,
"appium:nativeWebScreenshot": True,
"appium:newCommandTimeout": 3600,
"appium:connectHardwareKeyboard": True
})
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", options=options)
driver.quit()
四、实例应用
以打开百度APP,点击搜索框,搜索【自动化测试】,查看搜素结果为例。
1、开启APP后,获取搜索框的元素。
不难发现app的id都是obfuscated,因此我们选择用xpath定位。此处以搜索框的百度图标为识别点。

2、点击搜索框进入下级页面,获取新元素
如果在inspector操作一定要先点击根据坐标点击/滑动按钮。再点击刷新按钮获取新页面

3、获取二级搜索框的元素,这里可以用class name作为唯一标识。

4、搜索按钮就用xpath标识

5、最终我们可以得到运行代码,成功执行操作。
# 等待应用启动
sleep(5)
# 1. 找到搜索框,点击它
search_box = driver.find_element(By.XPATH,"(//android.widget.ImageView[@resource-id='com.baidu.searchbox:id/obfuscated'])[1]") # 根据你的实际情况修改ID
search_box.click()
# 2. 点击搜索框输入搜索关键词
# 此处涉及到页面跳转,窗口信息发生变化。
search_box1 = WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.CLASS_NAME, "android.widget.EditText")) # 更新 XPath
)
search_box1.click()
# 3. 输入搜索关键词
search_box1.send_keys("自动化测试")
# 4. 点击搜索按钮
search_button = driver.find_element(By.XPATH,"//android.widget.TextView[@resource-id='com.baidu.searchbox:id/obfuscated' and @text='搜索']") # 根据实际情况修改
search_button.click()
# 等待一段时间,让搜索完成
sleep(5)
其他常用命令可参考:python+appuim实现APP自动化教程
总结
以上就是今天要讲的内容,本文以百度APP举例,如何从appium inspector中获取页面元素并定位,最终用python实现自动操作的详细过程。
884



被折叠的 条评论
为什么被折叠?



