使用带有 Python 测试脚本的 Appium 驱动程序
Posted
技术标签:
【中文标题】使用带有 Python 测试脚本的 Appium 驱动程序【英文标题】:Using Appium Driver with Python Test Script 【发布时间】:2015-11-19 08:40:28 【问题描述】:我已经多次重构我的脚本以使其正常工作,现在却出现错误。请有人可以帮助我了解屏幕上实际显示的内容以及我哪里出错了?
每次在终端内运行它时都会遇到这些错误。
test_login_valid_password (main.HmaandroidLoginTest) ... 错误 test_login_valid_username (main.HmaAndroidLoginTest) ... 错误
================================================ ========================
错误:test_login_valid_password (main.HmaAndroidLoginTest)
Traceback(最近一次调用最后一次): 文件“Android01.py”,第 13 行,在 setUp self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) init 中的文件“build/bdist.macosx-10.10-intel/egg/appium/webdriver/webdriver.py”,第 37 行 super(WebDriver, self).init(command_executor, desired_capabilities, browser_profile, proxy, keep_alive) init 中的文件“/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py”,第 87 行 self.start_session(desired_capabilities, browser_profile) 文件“/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py”,第 136 行,在 start_session 'desiredCapabilities':desired_capabilities, 文件“/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py”,第 194 行,在执行 响应 = self.command_executor.execute(driver_command, params) 执行中的文件“/Library/Python/2.7/site-packages/selenium/webdriver/remote/remote_connection.py”,第 395 行 return self._request(command_info[0], url, body=data) _request 中的文件“/Library/Python/2.7/site-packages/selenium/webdriver/remote/remote_connection.py”,第 463 行 resp = opener.open(请求,超时=self._timeout) 文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第 431 行,打开 响应 = self._open(请求,数据) _open 中的文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第 449 行 '_open',请求) _call_chain 中的文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第 409 行 结果 = 函数(*args) http_open 中的文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第 1227 行 返回 self.do_open(httplib.HTTPConnection, req) 文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第 1197 行,在 do_open 引发 URLError(err) 网址错误:
================================================ ========================
错误:test_login_valid_username (main.HmaAndroidLoginTest)
Traceback(最近一次调用最后一次): 文件“Android01.py”,第 13 行,在 setUp self.driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) init 中的文件“build/bdist.macosx-10.10-intel/egg/appium/webdriver/webdriver.py”,第 37 行 super(WebDriver, self).init(command_executor, desired_capabilities, browser_profile, proxy, keep_alive) init 中的文件“/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py”,第 87 行 self.start_session(desired_capabilities, browser_profile) 文件“/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py”,第 136 行,在 start_session 'desiredCapabilities':desired_capabilities, 文件“/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py”,第 194 行,在执行 响应 = self.command_executor.execute(driver_command, params) 执行中的文件“/Library/Python/2.7/site-packages/selenium/webdriver/remote/remote_connection.py”,第 395 行 return self._request(command_info[0], url, body=data) _request 中的文件“/Library/Python/2.7/site-packages/selenium/webdriver/remote/remote_connection.py”,第 463 行 resp = opener.open(请求,超时=self._timeout) 文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第 431 行,打开 响应 = self._open(请求,数据) _open 中的文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第 449 行 '_open',请求) _call_chain 中的文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第 409 行 结果 = 函数(*args) http_open 中的文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第 1227 行 返回 self.do_open(httplib.HTTPConnection, req) 文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib2.py”,第 1197 行,在 do_open 引发 URLError(err) 网址错误:
在 0.014 秒内运行 2 次测试
失败(错误=2)
【问题讨论】:
【参考方案1】:好的,所以我认为这是 Appium Server 没有运行的情况,每次运行一组新测试时,都必须刷新 Appium Server。
还整理了脚本,测试通过了。
【讨论】:
以上是关于使用带有 Python 测试脚本的 Appium 驱动程序的主要内容,如果未能解决你的问题,请参考以下文章
Appium + Python 测试 QQ 音乐 APP的一段简单脚本
Appium+Python app自动化测试之脚本启动和停止Appium服务
appium自动化测试框架——在python脚本中执行dos命令