Appium之定位toast元素
Toast
toast属于一种轻量级的反馈,常常以小弹框的形式出现,一般出现1到2秒会自动消失,可以出现在屏幕上中下任意位置,但同个产品会模块尽量使用同一位置,让用户产生统一认知。
在样式上,尽量和产品整体风格保持一致,这样会更和谐,不至于突兀。
定位toast有两个前置条件:
1、appium-server 必须是1.7以上的版本才可以。
2、在appium的desired_caps配置中加入参数:
'automationName': 'uiautomator2'
脚本源码:
from appium import webdriver from time import sleep from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC desired_caps = { 'autoLaunch': 'True', 'deviceName': 'honor10', 'platformName': 'Android', 'platformVersion': '10.0', 'appPackage': "com.taobao.taobao", 'appActivity': "com.taobao.tao.welcome.Welcome", 'noReset': 'True', 'automationName': 'uiautomator2', } driver = webdriver.Remote('127.0.0.1:4723/wd/hub', desired_caps) sleep(5) # driver.wait_activity(".activity.HomeActivity", 10) driver.back() toast_loc = ("xpath", "//*[contains(@text,'再按一次返回键退出手机淘宝.')]") ele = WebDriverWait(driver, 10, 0.5).until(EC.presence_of_element_located(toast_loc)) # ele = driver.find_element(by="xpath", value="//*[contains(@text, '再按一次返回键退出手机淘宝.')]") print(ele) print(ele.text)
运行结果:
<appium.webdriver.webelement.WebElement (session="7130c2ac-75c1-49c5-96bd-48d70c74b35c", element="f1cd2802-40d4-4493-a270-d6febcd8d3be")>
再按一次返回键退出手机淘宝
关于Toast的介绍:http://www.woshipm.com/pd/603334.html
参考:https://www.cnblogs.com/qican/p/12616024.html