编写Python用例脚本遇到的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写Python用例脚本遇到的问题相关的知识,希望对你有一定的参考价值。
参考技术A 在使用Python3做自动化测试的过程中可能会遇到这种情况:assert函数不加try except 就可以正常在报告里体现用例不通过,加上了try except 反而变成了通过。这是因为在使用try except 时,捕获了assert函数产生的AssertionError异常,导致异常没有上抛,这时只需要在后面加上raise就可以再次把它抛出。
所以如果需要上报错误,就需要在try except语句后添加raise来上报错误,否则即使有错误用例也会直接通过
点击某个元素时通常用click方法,但是当所点击的元素UI区域太小时,会点击无效,造成以为视图中没有当前元素的错觉。
所以当前所点击的元素UI区域较小时,可以选择采用 tap 点击即轻触操作
当前所点击的元素UI区域较大时,可以选择采用click 点击或者 tap轻触操作
找对应的元素最好按照上图中参数的顺序尝试,优先选择通过accessibility id寻找元素,
如果元素没有“accessibility id”, 在通过“-ios class chain” 寻找元素
如果“ios class chain” 不容易找到元素,可尝试通过“-ios predicate string” 寻找元素
亲测"xpath"不是特别好用
正常情况下,通过“accessibility id” 或者“-ios class chain” 就能找到对应的元素
想要获取元素属性值,可通过get_attribute方法获取,其中的参数需要参考当前Inspector显示出的attribute,没有显示的则无法获取其属性值
例如:通过当前Inspector显示出的attribute,可以获取value属性值、type属性值、width属性值等等
有些页面数据复杂,点击某个元素后,接口请求较慢,此时延迟参数应设置大一点,防止页面未完全展示,导致后续点击操作报错
如:
有时点击某个元素后,不涉及到请求接口或者页面非常简单,此时延迟参数可设置小一点,避免较长等待
python--编写用例脚本
from appium import webdriver
import time
desired_caps = {}
desired_caps[‘platformName‘] = ‘Android‘
desired_caps[‘platformVersion‘] = ‘4.4.2‘
desired_caps[‘deviceName‘] = ‘test1‘
desired_caps[‘appPackage‘] = ‘com.xxxxx‘
desired_caps[‘appActivity‘] = ‘.xxxx‘
driver = webdriver.Remote(‘http://localhost/wd/hub‘, desired_caps)
#在输入框中输入值
driver.find_element_by_class_name("xxx.EditText").send_keys("xxx")
#点击事件
driver.find_element_by_id("xxx").click()
# login
driver.find_element_by_id("xxx").click()
#等待2秒
time.sleep(2)
# massage
driver.find_element_by_id("xxx").click()
driver.find_element_by_id("xxx").click()
#退出app
driver.quit()
以上是关于编写Python用例脚本遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章