美文网首页
『心善渊』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