欢迎关注微信公众号:菜鸟的测试之旅
一、 环境准备
1.脚本语言:Python3.x IDE:安装Pycharm
2.安装JDK、Android SDK
3.adb环境,需要加到环境变量中
4.安装Appium for windows,官网appium.io/
5.下载appium-inspector 地址:https://github.com/appium/appium-inspector
安装完成后,启动Appium Server GUI和 Appium Inspector
先配置Appium Server GUI,点击编辑配置,host和port默认的即可,然后设置Android SDk和Java JDK
配置完成点击启动服务器,显示运行中即可
再选择 Appium Inspector进行配置,再配置之前需要连接到Android设备
1.打开Android设备的开发者模式
2.开启USB调试
3.Android设备连接电脑(usb线连接或网络连接)
4.打开电脑cmd窗口,输入adb devices 查看连接是否成功
5.配置Appium Inspector
远程路径需配置:/wd/hub
按如下配置Desired Capabilities(所需能力)
platformName :声明是ios还是Android系统
platformVersion :Android内核版本号,可通过命令adb shell getprop ro.build.version.release查看
deviceName :连接的设备名称,通过命令adb devices -l中model查看
appPackage :apk的包名
appActivity:apk的launcherActivity,通过命令adb shell dumpsys activity | findstr “mResume”查看(需先打开手机应用)
noReset:Ture(启动时不清除缓存)False(启动时清除缓存)
设置完成点击启动会话
二、 录制脚本
右侧 Selected Element 区域有三个按钮
Tap:执行选中元素的点击事件
Send Keys:为文本框等对象传值
如果是文本输入元素,就清除文本
复制脚本,录制Python脚本如下:
# This sample code uses the Appium python client
# pip install Appium-Python-Client
# Then you can paste this into a file and simply run with Python
from appium import webdriver
caps = {}
caps["platformName"] = "Android"
caps["appium:platformVersion"] = "7.1.2"
caps["appium:deviceName"] = "rk399_all"
caps["appium:appPackage"] = "net.wwwyibu.multifunctionalmachine"
caps["appium:appActivity"] = ".activity.IndexActivity"
caps["appium:noReset"] = "True"
caps["appium:ensureWebviewsHavePages"] = True
caps["appium:nativeWebScreenshot"] = True
caps["appium:newCommandTimeout"] = 3600
caps["appium:connectHardwareKeyboard"] = True
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", caps)
driver.back()
el2 = driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.LinearLayout/androidx.recyclerview.widget.RecyclerView/android.widget.LinearLayout[2]/android.widget.TextView[1]")
el2.click()
driver.quit()