zoukankan      html  css  js  c++  java
  • appium三种等待方式

    分别是显式等待,隐式等待,强制等待

    可能会用到的库有:

    from selenium.webdriver.support.wait import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By

    三种运行方式的写法如下:

     1 """装饰器用来计算函数运行时长"""
     2 def decorator_counttime(function):
     3     def wrapper(*args, **kargs):
     4         starttime = time.time()
     5         function(*args, **kargs)
     6         endtime = time.time()
     7         totaltime = endtime - starttime
     8         print(
     9             "----------------- the function running use time : %s------------------"
    10             % totaltime)
    11 
    12     return wrapper
    13 
    14 
    15 @decorator_counttime
    16 def get_info_from_notification_Forced_wait():
    17     driver = webdriver.Remote('http://0.0.0.0:4723/wd/hub', desires_caps1)
    18     time.sleep(10)
    19     get_wifi_icon = driver.find_element_by_id(
    20         "com.cidana.mirror.asukalink:id/connectButton")
    21     print(get_wifi_icon.text)
    22     time.sleep(10)
    23     get_version = driver.find_element_by_id(
    24         "com.cidana.mirror.asukalink:id/textVer")
    25     print(get_version.text)
    26     driver.close_app()
    27 
    28 
    29 @decorator_counttime
    30 def get_info_from_notification_Explicit_wait():
    31     driver = webdriver.Remote('http://0.0.0.0:4723/wd/hub', desires_caps1)
    32     get_wifi_icon = WebDriverWait(driver, 10, 0.5).until(
    33         EC.presence_of_element_located(
    34             (By.ID, "com.cidana.mirror.asukalink:id/connectButton")))
    35     print(get_wifi_icon.text)
    36     get_version = WebDriverWait(driver, 10, 0.5).until(
    37         EC.presence_of_element_located(
    38             (By.ID, "com.cidana.mirror.asukalink:id/textVer")))
    39     print(get_version.text)
    40     driver.close_app()
    41 
    42 
    43 @decorator_counttime
    44 def get_info_from_notification_Implicit_wait():
    45     driver = webdriver.Remote('http://0.0.0.0:4723/wd/hub', desires_caps1)
    46     driver.implicitly_wait(10)
    47     get_wifi_icon = driver.find_element_by_id(
    48         "com.cidana.mirror.asukalink:id/connectButton")
    49     print(get_wifi_icon.text)
    50     get_version = driver.find_element_by_id(
    51         "com.cidana.mirror.asukalink:id/textVer")
    52     print(get_version.text)
    53     driver.close_app()
    54 
    55 
    56 get_info_from_notification_Forced_wait()
    57 time.sleep(3)
    58 get_info_from_notification_Explicit_wait()
    59 time.sleep(3)
    60 get_info_from_notification_Implicit_wait()

    运行结果分别为

    显式等待:7.64s

    隐式等待:7.84s

    强制等待:29.79s

  • 相关阅读:
    java实现远程开机
    windows系统设备管理器显示全部硬件
    使用pl/sql在oracle中新建表和对应序列
    mysql,oracle,sql server中的默认事务隔离级别查看,更改
    没有外网情况下linux安装mysql
    解决IntelliJ IDEA 创建Maven项目速度慢问题 DarchetypeCatalog
    vmware中linux虚拟机使用NAT模式不能连接外网解决
    idea中新建的web项目不能新建servlet
    SSH开源框架的优缺点
    配置JDK环境变量,与各步骤的意义
  • 原文地址:https://www.cnblogs.com/RuiRuia/p/14134347.html
Copyright © 2011-2022 走看看