Appium-Server的配置,在之前的博文已有介绍,基于Python的Appium环境搭建合集,所以在此处就不详细介绍了。今天主要来分享下Appium-Server和Appium desktop在使用上的区别。
在这篇博文中分享了如何使用模拟器,Genymotion模拟器的安装及脚本制作,但还没分享如何使代码正常运行起来,接下来详细说明。
在谈起代码时,就需要先了解下appium的关键字
Appium 服务关键字
Android特有
iOS特有
Appium-Server
了解了appium的关键字,再来看代码里面的参数,示例如下:
desired_caps = {
'platformName': 'Android', 'platformVersion': '4.4.4', 'deviceName': 'S5', 'appPackage': '', #包名 'appActivity': '', #app入口 'udid': '192.168.66.101:5555', # genymotion设备 'noReset': 'true', 'unicodeKeyboard': 'True', 'resetKeyboard': 'True', } |
这些参数,前六个参数都是必须的,后三个参数可视自己的配置使用。还有更多的参数,看上述的appium关键字即可,也可以参照该文档:https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md
参数定位
代码示例如下:
account = driver.find_element_by_id('id/rel_content') account.find_element_by_id('id/edit_acount') driver.press_keycode(61) print("换行操作") if driver.find_element_by_id('id/img_clear_acount'): clr_account = driver.find_element_by_id('id/img_clear_acount').click() print("账号清除成功") account.send_keys('10086') print("账号输入完毕") time.sleep(2) driver.press_keycode(61) print("换行操作") password = driver.find_element_by_id('id/rel_content') password.find_element_by_id('id/edit_pass') password.send_keys('123456') print("密码输入完毕") driver.find_element_by_xpath('//android.widget.TextView[@text="登 录"]').click() print("点击登录按钮") |
上述代码中,使用到的常规定位方式,id,xpath,还有更多的操作api,可参见这篇博文,里面总结的很详细,Appium Python API 中文版。
运行appium
代码讲述完毕,那又如何使用appium来运行代码呢?步骤如下:
1.配置appium
打开appium,对参数进行配置,先配置dvices name,获取devices name的方式使用命令adb devices即可,配置如下
2.服务设置
将server address配置为本地ip即可,端口默认为4723,配置如下:
3.启动appium
点击appium界面上的启动按钮,出现如下界面,则说明启动成功。
服务启动成功,则可以运行代码了,在模拟器中可查看到对应的操作。运行代码时,会自动在真机或模拟器上安装两个app,appium settings和unlock,自动安装的,可以忽略。
上述就是Appium-Server使用的配置了,但Appium-Server有一两年没有更新了。Windows版在2015年底止步于的 AppiumForWindows_1_4_16_1.zip 。
于是,新的工具 Appium-desktop 来了! 它来继续 Appium-Server的使命。当然,Appium-Server当前仍然是可用的。接下来则来说说Appium-desktop。
Appium-desktop
下载安装
下载地址:https://github.com/appium/appium-desktop/releases/tag/v1.13.0,依照各自需要的版本下载即可。比如windows版,将下载下来的.exe文件,双击安装即可。
安装配置
在安装好了之后,用appium-doctor来检查是否配置成功,但新版的appium是没有doctor文件的,所以需要通过npm下载并安装,命令如下:
npm install -g appium-doctor |
输入命令后,出现如下图所示界面:
安装好了之后,再使用如下命令检查新版的appium是否安装成功,命令如下:
appium-doctor |
输入命令后,出现如下界面,则说明安装成功:
启用配置
1.启动服务
打开安装好的appium,出现如下界面
连接本机的话,host可以不配置,就用默认的0.0.0.0,端口也用默认的4723,直接点击start server v1.13.0按钮,出现如下界面,说明服务启动成功
2.新建连接
new session window,进入到如下页面:
输入参数如下:
参数配置好了之后,最好是保存下,避免下次使用的时候,需要再次输入。
3.元素定位
点击start session按钮后,进入到如下页面:
在该页面就可以进行元素定位了,元素定位的详细api,可以参见之前提到的那篇api文档。
将写好的代码,在编译工具中执行即可,便可在模拟器或真机上看到效果,效果图就不上了。
问题总结
1.appium-desktop可支持安卓高版本
在模拟器那一篇博文中,我说我使用模拟器的原因,就是因为老版的appium不支持android8及以上的版本,今天在使用appium-desktop时,发现可以直接使用appium desktop定位元素。
2.'unicodeKeyboard' must be of type boolean; 'resetKeyboard' must be of type boolean
该问题是appium版本的问题,新版本unicodeKeyboard、resetKeyboard是布尔类型,将True的双引号去掉,就可以了,如:
'unicodeKeyboard': True,
'resetKeyboard': True,
以上就是我个人在使用上,对appium-server和appium-desktop认知的区别了,具体其他的区别,还待深入使用后发现。今天分享就到这了,有描述有误的地方,欢迎批评指正。祝大家节日快乐。
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理