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值取和期待的结果去字符串匹配。建议在自动化测试脚本开发中,采用第二个方法。

  • 相关阅读:
    C语言写的trim()函数
    TCP/IP和Socket的关系
    sizeof(数组名)和sizeof(指针)
    字符数组和结束符/0之间的关系
    C语言中二维字符数组的定义和初始化
    异步套接字基础:select函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
    do{...}while(0)的意义和用法
    Mirror--如何在主库上增加文件
    曲苑杂坛--收缩数据库文件
    常用脚本--SQL Server获取OS日志
  • 原文地址:https://www.cnblogs.com/wangyinghao/p/10571073.html
Copyright © 2011-2022 走看看