zoukankan      html  css  js  c++  java
  • Python+Selenium练习篇之18-获取元素上面的文字

    本文介绍如何通过Selenium方法来获取某一个元素的text属性值。在很多自动化测试脚本中,需要多次获取元素的text值,拿过来进行对比和匹配。例如,在一个登陆界面,如果不输入用户名和密码,直接点击登录,肯定会有相关错误提醒。这个错误,我们需要通过selenium抓取出来,和需求说明文档中的描述去进行匹配,如果匹配,测试成功,否则失败。

    这里用百度登录举例:

    需要通过Selenium脚本去自动判断是否显示错误文字“请您填写手机/邮箱/用户名”

    相关脚本代码如下:


    # coding=utf-8
    import time
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys


    driver = webdriver.Firefox()
    driver.maximize_window()
    driver.implicitly_wait(6)

    driver.get("http://www.baidu.com/")
    time.sleep(1)
    driver.find_element_by_xpath("//*[@id='u1']/a[7]").click()
    time.sleep(1)

    driver.find_element_by_xpath("//*[@id='TANGRAM__PSP_8__submit']").click()
    # 断言方法一
    try :
    error_message = driver.find_element_by_xpath("//*[@id='TANGRAM__PSP_8__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_8__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值取和期待的结果去字符串匹配。建议在自动化测试脚本开发中,采用第二个方法。

  • 相关阅读:
    【Anagrams】 cpp
    【Count and Say】cpp
    【Roman To Integer】cpp
    【Integer To Roman】cpp
    【Valid Number】cpp
    重构之 实体与引用 逻辑实体 逻辑存在的形式 可引用逻辑实体 不可引用逻辑实体 散弹式修改
    Maven项目聚合 jar包锁定 依赖传递 私服
    Oracle学习2 视图 索引 sql编程 游标 存储过程 存储函数 触发器
    mysql案例~tcpdump的使用
    tidb架构~本地化安装
  • 原文地址:https://www.cnblogs.com/wangyinghao/p/10571073.html
Copyright © 2011-2022 走看看