10-appium-toast定位
Posted 爱学习de测试小白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10-appium-toast定位相关的知识,希望对你有一定的参考价值。
目录
前言
- toast需要appium1.6.3以上版本才支持
toast样式
示例代码
# -*- coding: utf-8 -*-
# @Time : 2021/5/1
# @Author : 大海
import time
from appium import webdriver
desired_capabilities = {
"platformName": "android",
"deviceName": "127.0.0.1:62001",
"platformVersion": "7.1.2",
"appPackage": "com.jingdong.app.mall",
"appActivity": ".main.MainActivity"
}
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_capabilities=desired_capabilities)
driver.implicitly_wait(10)
flag = driver.wait_activity('.main.MainActivity', 10)
print(flag)
# 点击同意
driver.find_element_by_id('com.jingdong.app.mall:id/bqd').click()
time.sleep(5)
# 返回
driver.back()
text = driver.find_element_by_xpath("//*[contains(@text,'再次返回退出京东')]").text
print(text)
封装toast定位判断
# -*- coding: utf-8 -*-
# @Time : 2021/5/1
# @Author : 大海
import time
from appium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
desired_capabilities = {
"platformName": "Android",
"deviceName": "127.0.0.1:62001",
"platformVersion": "7.1.2",
"appPackage": "com.jingdong.app.mall",
"appActivity": ".main.MainActivity"
}
def is_toast_exist(driver, text, timeout=30, interval=0.5):
"""
:param driver: 驱动
:param text: toast文案
:param timeout: 超时时长,单位s
:param interval: 刷新间隔时长,单位s
:return: True/False
"""
try:
toast_loc = ("xpath", f".//*[contains(@text,'{text}')]")
WebDriverWait(driver, timeout, interval).until(EC.presence_of_element_located(toast_loc))
return True
except Exception as e:
print(e)
return False
if __name__ == '__main__':
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_capabilities=desired_capabilities)
driver.implicitly_wait(10)
# 等待Activity
flag = driver.wait_activity('.main.MainActivity', 10)
print(flag)
# 点击同意
driver.find_element_by_id('com.jingdong.app.mall:id/bqd').click()
time.sleep(5)
# 返回
driver.back()
text = '再次返回退出京东'
if is_toast_exist(driver, text):
toast_text = driver.find_element_by_xpath(f"//*[contains(@text,'{text}')]").text
print("toast_text:", toast_text)
else:
print('未定位到toast')
以上是关于10-appium-toast定位的主要内容,如果未能解决你的问题,请参考以下文章
Selenium Xpath元素无法定位 NoSuchElementException: Message: no such element: Unable to locate element(代码片段