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

猜你喜欢

转载自www.cnblogs.com/zhaocbbb/p/12640721.html