Appium等待操作-显性等待、隐性等待【四】

# 时间等待方式
# 第一种:固定延迟 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()

  • 附:常用的 expected_conditions 模块下的条件:
  • # EC.presence_of_element_located():元素存在
    # EC.visibility_of_element_located():元素可见
    # EC.element_to_be_clickable():元素可点击
    # EC.new_window_is_opened()  # 新窗口是否打开
    # EC.frame_to_be_available_and_switch_to_it()  # 可用并且切换进去
    # EC.alert_is_present()  # 弹出框的出现
    # EC.element_selection_state_to_be()  # 下拉列表状态
    # EC.element_to_be_selected()  # 某一个定位表达式的值应该是被选中的
    # EC.element_selection_state_to_be()  # 定位表达式的选中状态是什么
    # EC.element_to_be_selected()  # 元素可用被选中的
    # EC.invisibility_of_element()  # 隐形的元素
    # EC.number_of_windows_to_be()  # 窗口的个数应该为
    # # EC.presence_of_all_elements_located()  # 所有元素应该都存在
    # EC.text_to_be_present_in_element()  # 元素出现的文本内容
    # EC.text_to_be_present_in_element_value()  # 元素出现的文本内容值
    # EC.url_changes()  # url的改变
    # EC.url_contains()  # url的包含
    # EC.url_matches()  # url的匹配
    # EC.url_to_be()  # url的应该是什么
    
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值