一、expected_conditions模块是什么?
是Selenium的一个子模块,selenium.webdriver.support.expected_conditions
可以对网页上元素是否存在,可点击等等进行判断,一般用于断言或与WebDriverWait配合使用
二、expected_conditions模块简单应用
2.1 WebDriverWait与expected_conditions配合使用实例一
import osimport timefrom selenium import webdriverfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECdriver = webdriver.Chrome()driver.get('https://'))#判断当前页面的url是否包含预期字符串,返回布尔值WebDriverWait(driver,10).until(EC.url_contains('baidu'))#判断当前页面的url是否满足字符串正则表达式匹配,返回布尔值WebDriverWait(driver,10).until(EC.url_matches('.+baidu.+'))#判断元素是否出现,只要有一个元素出现,返回元素对象WebDriverWait(driver,10).until(EC.presence_of_element_located((By.ID,'kw')))#判断元素是否可见,返回元素对象WebDriverWait(driver,10).until(EC.visibility_of(driver.find_element(By.ID,'kw')))#判断元素是否包含指定文本,返回布尔值WebDriverWait(driver,10).until(EC.text_to_be_present_in_element((By.NAME,'tj_trnews'),'新闻'))#判断该frame是否可以switch进去,如果可以的话,返回True并且switch进去WebDriverWait(driver,10,).until(EC.frame_to_be_available_and_switch_to_it(By.xpath,'//iframe'))#判断某个元素是否可见并且是可点击的,如果是的就返回这个元素,否则返回FalseWebDriverWait(driver,10).until(EC.element_to_be_clickable((By.NAME,'tj_trnews')))#判断某个元素是否被选中,一般用在下拉列表WebDriverWait(driver,10).until(EC.element_to_be_selected(driver.find_element(By.xpath,'//input[@type="checkbox"]')))#判断页面上是否存在alert,如果有就切换到alert并返回alert的内容WebDriverWait(driver,10).until(EC.alert_is_present())
备注:以上整理大家要注意参数和返回值,部分参数是元素对象,部分是locator的元组,如(By.NAME,'tj_trnews')
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。