博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python+Selenium练习篇之20-获取元素上面的文字
阅读量:4301 次
发布时间:2019-05-27

本文共 1316 字,大约阅读时间需要 4 分钟。

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

这里用百度登录举例:

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

相关脚本代码如下:

# coding=utf-8import timefrom selenium import webdriverfrom selenium.webdriver.common.keys import Keysdriver = 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']").texttry:    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值取和期待的结果去字符串匹配。建议在自动化测试脚本开发中,采用第二个方法。

你可能感兴趣的文章
关于list对象的转化问题
查看>>
VOPO对象介绍
查看>>
suse创建的虚拟机,修改ip地址
查看>>
linux的挂载的问题,重启后就挂载就没有了
查看>>
docker原始镜像启动容器并创建Apache服务器实现反向代理
查看>>
docker容器秒死的解决办法
查看>>
管理网&业务网的一些笔记
查看>>
openstack报错解决一
查看>>
openstack报错解决二
查看>>
linux source命令
查看>>
openstack报错解决三
查看>>
乙未年年终总结
查看>>
子网掩码
查看>>
第一天上班没精神
查看>>
启动eclipse报错:Failed to load the JNI shared library
查看>>
eclipse安装插件的两种方式在线和离线
查看>>
linux下源的相关笔记(suse)
查看>>
linux系统分区文件系统划分札记
查看>>
Linux(SUSE 12)安装Tomcat
查看>>
Linux(SUSE 12)安装jboss4并实现远程访问
查看>>