元素等待
import time
from appium import webdriver
from appium.options.android import UiAutomator2Options
from appium.webdriver.common.appiumby import AppiumBy as By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
创建一个 UiAutomator2Options 对象
options = UiAutomator2Options()
options.platform_name = "Android"
options.platform_version = "5.1.1"
options.device_name = "127.0.0.1:62001"
options.app_package = "com.zhao.myreader"
options.app_activity = "com.zhao.myreader.ui.home.MainActivity"
url = "http://127.0.0.1:4723/wd/hub"
最新版本Appium-Python-Client
driver = webdriver.Remote(url, options=options)
元素等待的方式
*强制等待
time.sleep(1)
2、隐性等待
*2.1 等待资源加载
driver.implicitly_wait(3)
*2.2 等待指令
options.new_command_timeout = 36000
*2.3 显性等待
2.3.1 条件等待
wait = WebDriverWait(driver, <超时时间>, <频率时间>)
wait.until(<ec模块函数的调用>)
wait.until_not(<ec模块函数调用>)
'''
ec中常用方法
presence_of_element_located 底层就是用的find_element,所以它也只是对加载的等待。(存在等待)
presence_of_all_elements_located 这个是找所有元素,所有元素都能找到就行。(存在等待)
visibility_of_element_located 底层是元素的显示属性的等待,所以它是包含了对渲染的结果的等待。(显示等待)
visibility_of_all_elements_located 这个是找所有元素,所有元素都要是显示出来的才行。(显示等待)
visibility_of_any_elements_located 这个是找所有元素,所有元素中有一个显示了就行。(部分显示等待)
'''
2.3.2 Activity等待
driver.wait_activity(<活动名>, <超时时间>, <频率时间>)

浙公网安备 33010602011771号