appium for mac怎么定位toast

Posted

tags:

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

参考技术A appium for mac怎么定位toast
前期准备需要先在mac中Safari的浏览器,Safari浏览器是苹果预装好的浏览器无需再次去安装的。

在次启动ios的虚拟机,虚拟机可以同xcode方式进行启动的,然后打开手机中Safari浏览器,启动完手机中Safari浏览器之后,在手机浏览器中输入百度网址。

然后点击mac上Safari浏览器菜单中”开发“。如果手机中未打开开发中可以功能,可以显示通过Safari>偏好设置》高级选项中,勾选上在菜单栏中显示开发菜单的选项即可

在弹出下拉的菜单中进行选择“iPhone simulator”的选项功能。然后在移动右端中百度网址。

这样mac中浏览器会加载手机上浏览器中相关元素内容,然后点击如图右上角的手型图标。

转移到手机位置上,选择需要定位的元素内容已控件。如果是真正的手机上可以用手指指定到需要定位的元素的空间,每次获取元素的控件都是使用这种的方式,来进行获取到控件元素的。

这样mac中浏览器会直接定位手机上控件的元素内容。通过这些元素内容,进行编写脚本内容。编写代码完之后,就可以手机上执行代码了。

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')

 

以上是关于appium for mac怎么定位toast的主要内容,如果未能解决你的问题,请参考以下文章

Appium超详细环境搭建for Mac

Appium Android测试环境搭建 for Mac

appium 怎么定位纯 HTML5 页面应用

appium 怎么跳转页面定位元素

appium---android元素定位

定位器不起作用,除了 WebView 中 Appium for Android 上的 id