# 时间等待方式
# 第一种:固定延迟 5s
import time
time.sleep(5)
# 第二种:隐形等待 如果等到了进程马上运行,如没有等到,10秒后报错
from appium import webdriver
from appium.webdriver.common.appiumby import AppiumBy
# 启动Chrome驱动
driver = webdriver.Remote(command_executor='http://127.0.0.1:4723/wd/hub', desired_capabilities=desired_caps)
driver.implicitly_wait(10) # 在启动后到启动结束所有进程都保持10S处理时间。
# 第三种:显形等待
# 明确等待某个条件的满足之后,再去执行下一步的操作。
# 程序每隔XX秒看一眼,如果条件成立了,则执行下一步,否则继续等待,直到超过设置最长时间,然后抛出TimeoutException。
# 使用之前,引入相关的库
from appium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from appium.webdriver.common.appiumby import AppiumBy
from appium.webdriver.common.mobileby import MobileBy
# WebDriverWait类:显性等待类
# WebDriverWait(driver,等待时常,轮询周期).until()条件/until_not()直到条件不成立
# 以下是显性等待使用方法:
# 1、先确认元素的定位表达式
s_id = 'TANGRAM__PSP_11__regLink'
# 2、设置显性等待 WebDriverWait(driver,等待时常:10S,轮询周期:默认值0.5S).until()/until_not():条件成立/直到条件不成立
WebDriverWait(driver, 10).until(EC.presence_of_element_located((AppiumBy.ID, s_id))) # 条件 (元素定位为的类型,元素定位的表达式)
# 3、使用后续的方法 比如:点击
driver.find_element(AppiumBy.ID, 'TANGRAM__PSP_11__regLink').click()