【Appium】如何配置真机连接及定位元素

目录

一、真机配置

1、使用数据线连接真机与电脑。

2、开启开发者模式

3、开启USB调试

二、编写脚本

1、修改deviceName

2、修改platformVersion

3、appPackage和appActivity的获取

4、定位计算器界面元素

5、运行脚本


一、真机配置

1、使用数据线连接真机与电脑。

选择传输文件方式。

2、开启开发者模式

举我目前手上的两手机为例,其他的应该大同小异

  • 华为手机:手机-->设置-->'关于手机'-->版本号连续点4次,开启之后手机界面会提示你开启了开发者模式了。然后在设置里就会出现'开发人员选项'了,我的是在'关于手机'上方

【Appium】如何配置真机连接及定位元素_第1张图片

  • 小米手机:手机-->设置-->我的设备-->全部参数-->MIUI版本号连续点5次,就会开启开发者模式了,多点几次会有提示的。开启之后,开发者选项的位置是在手机-->设置-->更多设置-->开发者选项。

如下图以我的小米手机为例:

【Appium】如何配置真机连接及定位元素_第2张图片

3、开启USB调试

进入开发者模式选项,打开USB调试、USB安装、USB调试(安全设置),会提示你授权操作,记得同意一下。

【Appium】如何配置真机连接及定位元素_第3张图片

二、编写脚本

同样采用我们上一篇的计算器脚本,将其中模拟器的信息换成真机。脚本使用安卓版本6.0

1、修改deviceName

通过adb devices获取

2、修改platformVersion

查看手机安卓版本号

3、appPackageappActivity的获取

手机端打开计算器,然后电脑端在cmd中输入

安卓8.0以前用:adb shell dumpsys activity activities | findstr mFocusedActivity

安卓8.0以后用adb shell dumpsys activity activities | findstr mResume

【Appium】如何配置真机连接及定位元素_第4张图片

4、定位计算器界面元素

1、首先在手机端打开计算器,使手机界面停留在计算器界面。

2、电脑端打开SDK包里的tool文件夹下的uiautomatorviewer.bat工具,该工具只支持安卓8.0以下,8.0以上可使用Appium inspector。

【Appium】如何配置真机连接及定位元素_第5张图片

5、点击第二个按钮,会自动抓取手机端界面。

【Appium】如何配置真机连接及定位元素_第6张图片

6、由于我们之前打开了计算器,所以就能直接显示计算器界面了。

【Appium】如何配置真机连接及定位元素_第7张图片

7、这时候我们点击界面中想要定位的元素,右边就会显示出相应参数,比如我们想要用id定位,就可以直接复制下面的id信息了。

【Appium】如何配置真机连接及定位元素_第8张图片

5、运行脚本

由于真机连接可能会有延迟,所以可以在元素定位前面加上time.sleep(3)延迟语句。

运行之前记得开启Appium服务器

运行时手机端会提示安装appium settings,需要同意一下。

代码如下:

# V1.0 实现手机端计算器自动化测试:使用常量进行参数传递
# 导入appium类库
from appium.webdriver.webdriver import WebDriver
from selenium.webdriver.common.by import By
import time

# 定义一个字典类型,存放参数设置
caps = {
    'automationName': 'UiAutomator2',
    'platformName': 'Android',
    'platformVersion': '6.0',
    'deviceName': 'VLG4C16C17009881',
    'appPackage': 'com.android.calculator2',
    'appActivity': '.Calculator'}
# 输入Appium访问路径并传入参数
driver = WebDriver('http://127.0.0.1:4723/wd/hub', caps)
# 传入相关测试数据,实现7+8的步骤
time.sleep(3)
driver.find_element(By.ID, 'com.android.calculator2:id/digit7').click()
driver.find_element(By.ID, 'com.android.calculator2:id/plus').click()
driver.find_element(By.ID, 'com.android.calculator2:id/digit8').click()
driver.find_element(By.ID, 'com.android.calculator2:id/equal').click()

time.sleep(3)
driver.quit()

你可能感兴趣的:(Appium,Appium,Python)