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

原文地址:https://www.cnblogs.com/Maruying/p/13622738.html