• 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

  • 相关阅读:
    利用数据库复制技术 实现MSSQL数据同步更新
    育子两篇你会教育自已的小孩吗
    hdu 1046 Gridland (找规律题)
    hdu 1022 Train Problem I (栈的操作,还水了半天)
    hdu 4022 Bombing (强大的map一对多的映射)
    POJ 1702 Eva's Balance (数论,平衡三进制)
    hdu 3951 Coin Game (博弈)
    hdu 1058 Humble Numbers (DP初步)
    hdu 2084 数塔 (DP初步)
    hdu 1056 HangOver (打表水题)
  • 原文地址:https://www.cnblogs.com/RuiRuia/p/14134347.html
Copyright © 2020-2023  润新知