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