10-appium-toast定位

Posted 爱学习de测试小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了10-appium-toast定位相关的知识,希望对你有一定的参考价值。

目录

前言

toast样式

示例代码

封装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定位的主要内容,如果未能解决你的问题,请参考以下文章

CSS代码片段

Selenium Xpath元素无法定位 NoSuchElementException: Message: no such element: Unable to locate element(代码片段

css常用代码片段 (更新中)

分析定位占用CPU资源高的JVM线程

[NTUSTISC pwn LAB 7]Return to libc实验(puts泄露libc中gadget片段定位)

Android片段布局完成膨胀