1、启动夜神模拟器
1、解决adb version不兼容问题
遇到问题:
目前运行服务器端的adb版本(也就是夜神模拟器的adb版本)比客户端的版本(也就是SDK目录下的adb版本)低。
报错信息如下:
adb server version(31) doesn’t match this client (36);killing…
解决办法:
a、关掉夜神模拟器。同时去任务管理器里看下,adb.exe以及nox_adb.exe这2个进程有没有在运行?有的话就结束掉。
b、找到SDK的目录和夜神模拟器的目录,将SDK目录(C:\Program Files (x86)\Android\android-sdk\platform-tools)下的adb.exe文件,复制到夜神模拟器的目录(C:\Program Files (x86)\Nox\bin)下,将夜神模拟器目录下原本的adb.exe和nox_adb.exe修改文件名为adb_bak.exe和nox_adb_bak.exe,将从SDK目录复制过来的adb.exe放在夜神目录下,同时复制一份改名为nox_adb.exe。
2、启动夜神模拟器设备
打开cmd命令行,进入夜神安装目录,执行如下命令:
cd D:\Program Files (x86)\nox\bin nox_adb.exe connect 127.0.0.1:62001
在cmd命令行中,输入:adb devices查看
存在:127.0.0.1:62001 device
即为成功!adb devices
3、安装测试app
将测试app.apk安装包拖到夜神模拟器即可安装测试app。
2、运行与使用Appium
安装完成桌面会生成一个紫色的appium 图标,双击打开。
默认显示监控的 host 和 port ,这和 Appium-Server中是一致的。点击 “Start Server V 1.7.1” 按钮启动服务。
现在,编写 Appium 自动化测试脚本,可以通过Appium-desktop 来运行测试了。
3、编写Appium自动化测试脚本
1、脚本讲解
from appium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
desired_caps = {}
desired_caps['platformName'] = "Android" # 声明是ios还是Android系统
desired_caps['platformVersion'] = '4.4.2' # Android内核版本号,可以在夜神模拟器设置中查看
desired_caps['deviceName'] = '127.0.0.1:62001' # 连接的设备名称
desired_caps['appPackage'] = 'com.taobao.taobao' # apk的包名
desired_caps['appActivity'] = 'com.taobao.tao.welcome.Welcome' # apk的launcherActivity
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) # 建立 session
time.sleep(5)
driver.find_element_by_id("************").click() # 点击元素
driver.find_element_by_xpath("************").click() # 点击元素
driver.find_element_by_xpath("************").send_keys(u'123456') # 发送键值
driver.quit() # 退出 session
2、Appium获取元素的方式
通过xpyth定位:find_element_by_xpath(“//android.widget.TextView[10]”) xpath下标从1开始,使用完整的classname
通过text name:find_element_by_name(name对应uiautomator扫描后text的内容)
通过id:find_element_by_id(id对应resource-id)
通过classname定位:find_element_by_class_name(class_name对应class)
通过accessibility id:find_element_by_accessibility_id(accessibility_id对应content-desc)
定位到某个文本框,并输入内容:
driver.find_element_by_id(“xxxxx”) .send_keys(“123456”)
滑动屏幕:
获取屏幕尺寸 width=self.driver.get_window_size()[‘width’] height=self.driver.get_window_size()[‘height’]
滑动屏幕 driver.swipe(width*9/10, height*1/2, width*1/10, height*1/2, 1000)
3、获取apk包名和launcherActivity
- 把测试app.apk放在D:\test\文件夹下
- 打开cmd命令行,输入:aapt dump badging D:\test\app.apk(apk的全名,比如:手机淘宝.apk)
这里可以看到apk包名为:com.taobao.taobao
- 获取launcherActivity
可以得到launcherActivity为:com.taobao.tao.welcome.Welcome
4、获取apk元素
- 首先执行测试脚本
- 使用Appium的“Start Inspector Session”
- 启动session查看UI元素
依次如图所示:
图一:
图二:
图三: