Python+Selenium练习篇之10-获取元素上面的文字/验证控件是否被选中

耗尽温柔 提交于 2020-08-11 20:57:14

获取元素上面的文字

 

本文介绍如何通过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值取和期待的结果去字符串匹配。建议在自动化测试脚本开发中,采用第二个方法。 (海量免费学习资料,软件测试交流:1140267353,还会有同行一起技术交流)



验证控件是否被选中

 

 

上文章我们了解了如何获取元素的text属性值,和判断元素是否显示在页面(is_displayed()方法),本文我们来学习下,判断一个控件是否被选中状态。

还是以百度新闻举例:

 

由于这个"新闻全文"是默认被选中状态,我们需要用脚本去判断是否被选中。

相关代码如下:

# coding=utf-8
import time
from selenium import webdriver


driver = webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(6)
driver.get("http://news.baidu.com/")
time.sleep(1)
try:
driver.find_element_by_xpath("//*[@id='news']").is_selected()
print ('Test Pass.')
except Exception as e:
print ('Test fail',format(e))

 


总结:

元素方法is_selected()返回是是布尔值,用来判断单选或者多选控件是否被选中,或者下拉选择菜单是否选择一个默认的option,都可以通过这个方法去判断。


上一篇    Python+Selenium练习篇之9-自定义浏览器窗口大小/断言页面标题

下一篇    Python+Selenium练习篇之11-获取页面元素大小/组合键-全选文字

 

以上仅供参考和借鉴,希望对你有所帮助!

点个关注不迷路
小枫文章整理不易,欢迎各位朋友点赞关注

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!