前言
在做结果判断的时候,经常想判断某个元素中是否存在指定的文本,如登录后判断页面中账号是否是该用户的用户名。
在前面的登录案例中,写了一个简单的方法,但不是公用的,在EC模块有个方法是可以专门用来判断元素中存在指定文本的:text_to_be_present_in_element。
另外一个差不多的方法判断元素的value值:text_to_be_present_in_element_value。
一、源码分析
#判断元素中是否存在指定的文本,参数:locator,text
#__call__里返回的是布尔值:True和False
class text_to_be_present_in_element(object):
""" An expectation for checking if the given text is present in the
specified element.
locator, text
"""
def __init__(self, locator, text_):
self.locator = locator
self.text = text_
def __call__(self, driver):
try:
element_text = _find_element(driver, self.locator).text
return self.text in element_text
except StaleElementReferenceException:
return False
二、判断文本
1.判断百度首页上,“新闻”按钮这个元素中存在文本:新闻
2.locator参数是定位的方法(定位方法与find_element()一致)
3.text参数是期望的值