selenium的expected_conditions模块方法

expected_conditions模块主要用于对页面的加载进行判断,主要的用途有两个,一、用于响应数据断言;二、与WebDriverWait连用,等待页面元素加载成功

在此先导入需要用到的模块或方法,一下举例访问的url均以此为准

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

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")

常用方法:
title_is(title_pre):判断当前页面的title是否精确等于title_pre

print(expected_conditions.title_is(u"百度一下,你就知道")(driver))  # 在title_is类中,存在__call__方法,判断输入的字符串是否等于当前页面的title,而__call__方法需要传入的一个参数就是当前浏览器driver

print(driver.title)  # 输出当前页面的title

driver.quit()

title_contains(title_pre):判断当前页面的title是否包含title_pre

print(expected_conditions.title_contains(u"百度一下")(driver)) # 原理同title_is

presence_of_element_located((By.ID, locator)):接收一个元组,判断页面元素是否出现(出现不代表可见),一般与智能等待一块使用

WebDriverWait(driver, 5).until(expected_conditions.presence_of_element_located((By.ID, "su")))  # 这里只要不报错,程序可以继续向下执行即说明此命令执行成功

url_contains(url_pre):判断当前页面的url是否包含url_pre,区分大小写

print(expected_conditions.url_contains("baidu.com")(driver))

url_matches(url_pre):使用正则表达式的方式判断当前页面的url是否包含url_pre,包含返回返回True

print(expected_conditions.url_matches("baidu.com")(driver))  # True
print(expected_conditions.url_matches("b0idu.com")(driver))  # False

url_to_be(url_pre):判断当前页面的url是否精确等于url_pre

print(expected_conditions.url_to_be("https://www.baidu.com/")(driver))
print(driver.current_url)  # 得到当前页面的url

url_changes(url_pre):判断当前页面的url是否与预期不同,不同返回True
visibility_of_element_located((By.ID, locator)):接收一个元组,判断元素是否出现并可见,可见意味着宽高大于0,一般与智能等待连用

WebDriverWait(driver, 5).until(expected_conditions.visibility_of_element_located((By.ID, "su")))  # 程序无报错,继续向下执行即为成功

visibility_of(element):通过元素直接定位,visibility_of_element_locator是通过locator进行定位
presence_of_all_elements_located((By.ID, locator)):只要页面上有一个符合的元素出现就返回True
text_to_be_present_in_element_value((By.ID, locator), str_pre):判断定位到的元素的value值是否等于预期的str_pre

print(expected_conditions.text_to_be_present_in_element_value((By.ID, "su"), u"百度一下")(driver))

element_to_be_clickable:判断一个元素是否可以点击,可点击需符合两个条件,一、元素可见;二、使能,即元素的is_enabled()为True
element_to_be_selected(element):判断元素是否被选中
element_located_to_be_selected((By, locator)):接收一个元素,功能与上一个相同
element_selection_stat_to_be(element, is_selected):判断元素的状态是否符合给定的值
number_of_windows_to_be(num):判断窗口的数量是否达到指定的数量

print(expected_conditions.number_of_windows_to_be(1)(driver))

alert_is_present:无参数,判断页面上是否存在alert,如果有,返回alert句柄

print(expected_conditions.alert_is_present()(driver))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值