我正在尝试使用If语句来检查某些文本是否在变量中。 该变量包含一些鼠标悬停在其上执行的文本。 方案是:将鼠标悬停在网页上的报表中的单元格上。 我将文本放入变量中,然后将其打印到控制台。我知道文本已被捕获。
我的IF声明失败了。我收到错误:
TypeError: argument of type 'NoneType' is not iterable
我的IF声明是:
if "DO_NAME" in matchAudit_element:
return True
else:
return False
我的代码段是:
def mouse_hover_over_match_audit_code_for_matches_filtered_report(self):
match_audit_element = self.get_element(By.XPATH, '//table[@id="reporting_view_report_dg_main_body"]/tbody/tr[1]/td[4]//div//span[contains(@title,"Matched from: DO_NAME")]')
print "match_audit_element ********************************"
print match_audit_element.text
print "Mouse Hover Over >>>>>>>>>>"
self.mouse_hover_over(match_audit_element)
return self.mouse_hover_over(match_audit_element)
def is_mouse_hover_over_match_audit_code_for_matches_filtered_report(self):
matchAudit_element = self.mouse_hover_over_match_audit_code_for_matches_filtered_report()
if "DO_NAME" in matchAudit_element:
return True
else:
return False
控制台的输出是:
match_audit_element ********************************
DO_NAME[xt ]DO_ADDRESS[B]DO_DOB[]
Mouse Hover Over >>>>>>>>>>
我做错了什么?这是我的IF声明中的内容。
谢谢, 里亚兹
答案 0 :(得分:1)
看起来matchAudit_element
是WebElement
。 in
语句可用于检查子字符串是否存在或数组中是否存在项目。因此,matchAudit_element
替换matchAudit_element.text
应该解决它:
def is_mouse_hover_over_match_audit_code_for_matches_filtered_report(self):
matchAudit_element = self.mouse_hover_over_match_audit_code_for_matches_filtered_report()
if "DO_NAME" in matchAudit_element.text:
return True
else:
return False
此外,方法mouse_hover_over
可能不会返回任何内容。尝试显式返回match_audit_element
:
def mouse_hover_over_match_audit_code_for_matches_filtered_report(self):
match_audit_element = self.get_element(By.XPATH, '//table[@id="reporting_view_report_dg_main_body"]/tbody/tr[1]/td[4]//div//span[contains(@title,"Matched from: DO_NAME")]')
print "match_audit_element ********************************"
print match_audit_element.text
print "Mouse Hover Over >>>>>>>>>>"
self.mouse_hover_over(match_audit_element)
self.mouse_hover_over(match_audit_element)
return match_audit_element