python+Appium自动化:Appium元素检测
appium模拟用户的真实操作,如果用户第一次进入app或许会弹出一些更新提示,或者是引导页面,但是下一次开启app时则没有引导页这些界面,这时,脚本中又肯定不考虑用两套代码来进行维护,此时如何应对这种场景进行处理呢?
比如启动淘宝应用,之前使用这个noReset配置,当默认设置为False,即每次进入都会清除掉session,即有温馨提示弹窗出现,那当设置为True时,第二次进入时,不会有弹窗,那此时再执行原有的脚本就会报错,有人会说用if语句来进行判断,亲测也会出现问题,所以最后还是推荐用try...except来进行检测比较好。
代码如下:
# -*- coding: utf-8 -*-#
from appium import webdriver
from selenium.common.exceptions import NoSuchElementException
desired_caps = {
"platformName": "Android",
"platformVersion": "5.1",
"deviceName": "U4KF9HSK99999999",
"appPackage": "com.taobao.taobao",
"appActivity": "com.taobao.tao.welcome.Welcome",
"noReset": True
}
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)
driver.implicitly_wait(10)
def check_agreebtn():
print("check_agreebtn")
try:
agreebtn=driver.find_element_by_id('com.taobao.taobao:id/provision_positive_button')
except NoSuchElementException:
print("no agreebtn")
else:
agreebtn.click()
def check_localtionbtn():
print("check_localtionbtn")
try:
localtionbtn=driver.find_element_by_id('com.taobao.taobao:id/uik_mdButtonDefaultPositive')
except NoSuchElementException:
print("no localtionbtn")
else:
localtionbtn.click()
check_agreebtn()
check_localtionbtn()
导入NoSuchElementException模块,启动app后,先判断是否有“同意”按钮,如有的话进行点击,无则输出no agreebtn,同理,位置信息也是一样~
此方法,后续用的比较多~
转载请附上原文链接。