美文网首页
『心善渊』Selenium3.0基础 — 32.Selenium

『心善渊』Selenium3.0基础 — 32.Selenium

作者: 繁华似锦Fighting | 来源:发表于2020-09-11 10:23 被阅读0次

(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模块这组合的用法,以后我们会进行异常处理和封装,让我们的代码更加可读,可复用。

相关文章

网友评论

      本文标题:『心善渊』Selenium3.0基础 — 32.Selenium

      本文链接:https://www.haomeiwen.com/subject/dzelektx.html