关于appium的简单理解
搭建好appium环境后,要学会定位app页面上的元素。下面是2款元素定位工具
- uiautomatorviewer — Android SDK自带的元素定位工具,由Google开发的
- Inspecor — appium Inspector是appium自带的一个元素定位工具
Android SDK在4.1以后提供了下面2种工具来支持UI自动化测试:
- uiautomatorviewer – 一个图形界面工具来扫描和分析应用的UI控件
- uiautomator – 一个测试的Java库,包含了创建UI测试的各种API和执行自动化测试的引擎
PS:切记不能搞混uiautomator和uiautomatorviewer!!!
下面是用Python实现:怎么在夜神模拟器安装淘宝app和定位淘宝的搜索框
from appium import webdriver import time desired_caps = {} -- 用字典格式表示,key和value要一一对应 desired_caps[\'platformName\'] = \'Android\' #android的apk还是IOS的ipa desired_caps[\'platformVersion\'] = \'8.0\' #android系统的版本号 desired_caps[\'deviceName\'] = \'127.0.0.1:62001\' #手机设备名称,通过adb devices 查看 desired_caps[\'appPackage\'] = \'com.taobao.taobao\' #apk的包名 desired_caps[\'appActivity\'] = \'com.taobao.tao.welcome.Welcome\' #apk的launcherActivity #desired_caps[\'unicodeKeyboard\'] = True #使用unicodeKeyboard的编码方式来发送字符串 #desired_caps[\'resetKeyboard\'] = True #将键盘给隐藏起来 driver = webdriver.Remote(\'http://127.0.0.1:4723/wd/hub\', desired_caps) #启动服务器地址,后面跟的是手机信息 # 休眠五秒等待页面加载完成 time.sleep(5) driver.find_element_by_id("com.taobao.taobao:id/home_searchedit").click() # driver.quit()
上面的代码解释:
“http://127.0.0.1:4723/wd/hub”的解释:
127.0.0.1 — 环回地址(loopback address),用来测试本机的TCP/IP协议栈。等价于localhost(本机)
4723 — appium默认端口号,不是固定的,可以修改,但不能冲突
PS:cmd查看当前占用的端口号,可输入以下命令:
- netstat -ano — 查看当前所有占用的端口
- netstat -ano | findstr “4723” — 查看端口号4723被哪个程序占用
/wd/hub:
从上面的图片,我们可以看到:WebDriver类在初始化时定义了一个地址,除了端口号不一样,其它的和我们传的是一样的,也有/wd/hub。因此我们就可以简单的把/wd/hub理解为——规定。