zoukankan      html  css  js  c++  java
  • 通过expected_conditions判断网页元素是否存在

    expected_conditions模块:

    • 是Selenium的一个子模块,selenium.webdriver.support.expected_conditions

    • 可以对网页上元素是否存在进行判断,一般用于断言或与WebDriverWait配合使用

       1 import time
       2 from selenium import webdriver
       3 from selenium.webdriver.support.wait import WebDriverWait
       4 from selenium.webdriver.support import expected_conditions as EC
       5 from selenium.webdriver.common.by import By
       6 
       7 
       8 class Expected_Conditions:
       9     # expected_conditions模块用法汇总
      10     def __init__(self):
      11         self.driver = webdriver.Chrome()
      12         self.driver.get("https://www.baidu.com")
      13         self.driver.maximize_window()
      14         time.sleep(2)
      15         # 判断当前页面的title
      16         WebDriverWait(self.driver, 2).until(EC.title_is("百度一下,你就知道"))
      17         # 判断定位元素
      18         element = WebDriverWait(self.driver, 2).until(EC.visibility_of(self.driver.find_element(By.ID, 'kw')))
      19         element.send_keys('中彦引擎')
      20         time.sleep(2)
      21 
      22         # 判断当前页面的title是否包含预期字符串,返回布尔值
      23         WebDriverWait(self.driver, 10).until(EC.title_contains('new'))
      24 
      25         # 判断当前页面的url是否精确等于预期,返回布尔值
      26         WebDriverWait(self.driver, 10).until(EC.url_contains('https://www.baidu.com'))
      27 
      28         # 判断当前页面的url是否包含预期字符串,返回布尔值
      29         WebDriverWait(self.driver, 10).until(EC.url_contains('baidu'))
      30 
      31         # 判断当前页面的url是否满足字符串正则表达式匹配,返回布尔值
      32         WebDriverWait(self.driver, 10).until(EC.url_matches('.+baidu.+'))
      33 
      34         # 判断元素是否出现,只要有一个元素出现,返回元素对象
      35         WebDriverWait(self.driver, 10).until(EC.presence_of_element_located((By.ID, 'kw')))
      36 
      37         # 判断元素是否可见,返回元素对象
      38         WebDriverWait(self.driver, 10).until(EC.visibility_of(self.driver.find_element(By.ID, 'kw')))
      39 
      40         # 判断元素是否包含指定文本,返回布尔值
      41         WebDriverWait(self.driver, 10).until(EC.text_to_be_present_in_element((By.NAME, 'tj_trnews'), '新闻'))
      42 
      43         # 判断该是否可以switch进去,如果可以的话,返回True并且switch进去
      44         WebDriverWait(self.driver, 10, ).until(EC.frame_to_be_available_and_switch_to_it(By.XPATH, '// '))
      45 
      46         # 判断某个元素是否可见并且是可点击的,如果是的就返回这个元素,否则返回
      47         WebDriverWait(self.driver, 10).until(EC.element_to_be_clickable((By.NAME, 'tj_trnews')))
      48 
      49         # 判断某个元素是否被选中,一般用在下拉列表
      50         WebDriverWait(self.driver, 10).until(
      51             EC.element_to_be_selected(self.driver.find_element(By.XPATH, '//input[@type="checkbox"]')))
      52 
      53         # 判断页面上是否存在
      54         WebDriverWait(self.driver, 10).until(EC.alert_is_present())
      55 
      56         self.driver.quit()
      57 
      58 
      59 if __name__ == "__main__":
      60     Expected_Conditions()
  • 相关阅读:
    Valgrind使用转载 Sanny.Liu
    Caffe模型读取 Sanny.Liu
    JNI动态库生成、编译、查看相关简易资料 Sanny.Liu
    GDB调试,转载一位大牛的东西 Sanny.Liu
    Android处理图片工具(转载) Sanny.Liu
    添加可点击的imagebottom,有个点击动画效果 Sanny.Liu
    去OpenCVManager,大部分为转载,仅当自己学习使用 Sanny.Liu
    转载: vim使用技巧 Sanny.Liu
    结构体数组初始化三种方法,转载 Sanny.Liu
    AsyncTask机制学习 Sanny.Liu
  • 原文地址:https://www.cnblogs.com/lxj-dream/p/14421233.html
Copyright © 2011-2022 走看看