zoukankan      html  css  js  c++  java
  • Python+Selenium练习(十九)-获取元素上面的文字

      获取某个元素的text属性值,与预期值进行对比和匹配。

      练习场景:在百度登录界面,不输入账号和密码的情况下,点击登录,出现提示“请您填写手机/邮箱/用户名”,抓取该描述与需求文档描述进行对比,如果匹配,测试通过,反之失败。

    具体代码:

    # coding=utf-8
    import time
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    
    
    driver = webdriver.Chrome()
    driver.maximize_window()
    driver.implicitly_wait(6)
    
    driver.get("http://www.baidu.com/")
    time.sleep(1)
    driver.find_element_by_xpath("//*[@id='u1']/a[8]").click()
    time.sleep(1)
    driver.find_element_by_xpath("//*[@title='用户名登录']").click()
    time.sleep(1)
    
    driver.find_element_by_xpath("//*[@id='TANGRAM__PSP_10__submit']").click()
    time.sleep(1)
    # 断言方法一
    try:
        error_message = driver.find_element_by_xpath("//*[@id='TANGRAM__PSP_10__error' and text()='请您输入手机/邮箱/用户名']").is_displayed()
        print("Test pass. the error message is display.")
    except Exception as e:
        print("Test fail.",format(e))
    
    # 断言方法二
    error_mes = driver.find_element_by_xpath("//*[@id='TANGRAM__PSP_10__error']").text
    try:
        assert error_mes == u'请您输入手机/邮箱/用户名'
        print('Test pass.')
    except Exception as e:
        print("Test fail.",format(e))
    

      

    总结:要获取目标元素的text的值,需要定义一个目标元素element,然后通过element.text方法得到字符串,注意不是element.text(),这个方法是没有带小括号的。上面介绍了两个方法,方法一是,直接把字段写入Xpath表达式,如果通过该Xpath能定位到元素,说明这个错误字段已经在页面显示;方法二是它能够给该目标元素节点,然后通过element.text得到值,在拿到的text值取和期待的结果去匹配。建议在自动化测试脚本开发中采用第二种方法。

    参考文章:https://blog.csdn.net/u011541946/article/details/69945381

  • 相关阅读:
    Spiral Matrix II
    N-Queens
    Jump Game II
    js改变div高度
    Jenkins + testNg + maven 项目持续集成
    bootstrap做的导航
    bootstrap左侧边栏
    WEB-INF下jsp跳转
    jsp页面无法解析EL表达式
    springMVC和mybatis整合,jsp对时间进行格式化
  • 原文地址:https://www.cnblogs.com/zhaocbbb/p/12640721.html
Copyright © 2011-2022 走看看