(3)text_to_be_present_in_element(locator,text)示例
巩固练习:
"""
1.学习目标:
必须掌握EC模块中元素定位方法
text_to_be_present_in_element(locator,text)
2.语法
2.1 text_to_be_present_in_element(locator,text)
判断文本是否在元素中,如果存在返回true,如果不存在返回false
2.2 text_to_be_present_in_element_value(locator,text)
判断文本是否存在于元素的value属性值中,如果存在返回true,如果不存在返回false
"""
# 1.导入selenium
from selenium import webdriver
from time import sleep
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
# 2.打开谷歌浏览器
driver = webdriver.Chrome()
# 3.输入网址
url = "https://www.baidu.com"
driver.get(url)
sleep(2)
# 4.EC模块的使用
# 4.1 判断text是否存在于文本中
# 4.1.1 编写定位器locator
link_loc = ("link text", "hao123")
# 4.1.2 定义期望值
text_link = "hao123"
# 4.1.3 判断文本是否在元素中,如果存在返回true,如果不存在返回false
result = WebDriverWait(driver, 5).until(EC.text_to_be_present_in_element(link_loc, text_link))
print("present_in_element判定结果:", result)
# 4.2 判断text是否存在于元素的value属性中
# 判断百度首页的"百度一下"
# 4.2.1 编写定位器locator
button_loc = ("id", "su")
# 4.2.2 定义期望值
text_button = "百度一下"
# 4.2.3 判断文本是否存在于元素的value属性值中,如果存在返回true,如果不存在返回false
result_val = WebDriverWait(driver, 5).until(EC.text_to_be_present_in_element_value(button_loc, text_button))
print("present_in_element_value判定结果:", result_val)
# 5.关闭浏览器
sleep(2)
driver.quit()
"""
输出结果:
present_in_element判定结果: True
present_in_element_value判定结果: True
"""
(4)注意:(重要)
上面所有的练习,都必须正确找到需求的定位元素,否则会抛TimeoutException
异常。
因为WebDriverWait
类和until()
方法和EC
模块这种组合的使用方法
WebDriverWait(driver, 5).until(EC.presence_of_element_located(input_locator))
如果没有定位到元素,会返回until()
方法的返回结果,until()
方法的返回结果是,在规定时间内没有找到需要定位的元素,就会抛出selenium.common.exceptions.TimeoutException: Message:
异常。
所以我们上边写的例子就是让自己熟悉WebDriverWait
类和until()
方法和EC
模块这组合的用法,以后我们会进行异常处理和封装,让我们的代码更加可读,可复用。
网友评论