• WebDriverWait与expected_conditions结合使用


    expected_conditions判断页面元素

    • demo2
    from selenium import webdriver
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.common.by import By
    import time
     
    driver = webdriver.Chrome()
    driver.get("http://www.baidu.com/")
    locator = (By.ID,"kw")
     
    try:
        ele = WebDriverWait(driver,10).until(EC.presence_of_element_located(locator))
        driver.find_element_by_id("kw").send_keys('abc')
        time.sleep(1) #为了看效果
    except:
        print("ele can't find")
    finally:
        driver.quit()

    expected_conditions类提供的预期条件判断的方法

    方法说明
    title_is 判断当前页面的 title 是否完全等于(==)预期字符串,返回布尔值
    title_contains 判断当前页面的 title 是否包含预期字符串,返回布尔值
    presence_of_element_located 判断某个元素是否被加到了 dom 树里,并不代表该元素一定可见
    visibility_of_element_located 判断元素是否可见(可见代表元素非隐藏,并且元素宽和高都不等于 0)
    visibility_of 同上一方法,只是上一方法参数为locator,这个方法参数是 定位后的元素
    presence_of_all_elements_located 判断是否至少有 1 个元素存在于 dom 树中。举例:如果页面上有 n 个元素的 class 都是’wp’,那么只要有 1 个元素存在,这个方法就返回 True
    text_to_be_present_in_element 判断某个元素中的 text 是否 包含 了预期的字符串
    text_to_be_present_in_element_value 判断某个元素中的 value 属性是否包含 了预期的字符串
    frame_to_be_available_and_switch_to_it 判断该 frame 是否可以 switch进去,如果可以的话,返回 True 并且 switch 进去,否则返回 False
    invisibility_of_element_located 判断某个元素中是否不存在于dom树或不可见
    element_to_be_clickable 判断某个元素中是否可见并且可点击
    staleness_of 等某个元素从 dom 树中移除,注意,这个方法也是返回 True或 False
    element_to_be_selected 判断某个元素是否被选中了,一般用在下拉列表
    element_selection_state_to_be 判断某个元素的选中状态是否符合预期
    element_located_selection_state_to_be 跟上面的方法作用一样,只是上面的方法传入定位到的 element,而这个方法传入 locator
    alert_is_present 判断页面上是否存在 alert
  • 相关阅读:
    互联网协议入门
    【HTTP】图解HTTPS
    《计算机本科生理想的学习计划》
    VC++ TinyXML
    TinyXML 在vs2010 VC++使用
    Hadoop2.4.1入门实例:MaxTemperature
    xcode6
    Android利用广播监听设备网络连接(断网)的变化情况
    编程算法
    Google的Guava之IO升华
  • 原文地址:https://www.cnblogs.com/lvchengda/p/12626881.html
Copyright © 2020-2023  润新知