python客户端和Appium服务端联调出现的问题解决办法

Posted Ladylittleleaf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python客户端和Appium服务端联调出现的问题解决办法相关的知识,希望对你有一定的参考价值。

按照安装文档搭建完移动端自动化测试环境,包括:SDK、JDK、Node.js、Appium及客户端后,appium-doctor可以成功的检测到各配套版本。如下图:

可是,运行from appium import webdriver出错,上报:ImportError: cannot import name InvalidArgumentException错误。

我查看C:\\Python27\\Lib\\site-packages\\appium\\webdriver\\webdriver.py文件,发现该文件引用的是from selenium import webdriver

于是,我把代码中的这项from appium import webdriver改成from selenium import webdriver,查看Appium服务发现能够联调成功。

可是运行代码的时候,发现服务端上报如下错误:Android devices must be of API level 17 or higher.

 

查看我的模拟器,发现版本为:

 

于是果断再增加一个API17版本的模拟机,

再运行测试脚本:

#coding=utf-8
from appium import webdriver

desired_caps = {}
desired_caps[\'platformName\'] = \'Android\'
desired_caps[\'platformVersion\'] = \'4.4.2\'
desired_caps[\'deviceName\'] = \'192.168.54.101:5555\'
desired_caps[\'appPackage\'] = \'com.android.calculator2\'
desired_caps[\'appActivity\'] = \'.Calculator\'

driver = webdriver.Remote(\'http://localhost:4723/wd/hub\', desired_caps)
driver.find_element_by_name("1").click()
driver.find_element_by_name("5").click()
driver.find_element_by_name("9").click()
driver.find_element_by_name("9").click()
driver.find_element_by_name("5").click()
driver.find_element_by_name("+").click()
driver.find_element_by_name("6").click()
driver.find_element_by_name("=").click()
driver.quit()
成功连接到服务器启动模拟手机的计算器功能做自动化测试。

 


 

以上是关于python客户端和Appium服务端联调出现的问题解决办法的主要内容,如果未能解决你的问题,请参考以下文章

客服端与服务端APP支付宝支付接口联调的那些坑

Qt笔记-解决QTcpSocket发送数据成功,但接收端接收不全的问

Appium Python 三:Desired capabilities

appium 初探

(57)C#里的WEBAPI的客户端怎么样与Python服务器联调

(57)C#里的WEBAPI的客户端怎么样与Python服务器联调