关于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理解为——规定。
一行代码一行诗