Selenium Python鼠标悬停在TypeError上:“NoneType”类型的参数不可迭代

时间:2016-08-10 15:53:29

标签: python-2.7 selenium selenium-webdriver

我正在尝试使用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声明中的内容。

谢谢, 里亚兹

1 个答案:

答案 0 :(得分:1)

看起来matchAudit_elementWebElementin语句可用于检查子字符串是否存在或数组中是否存在项目。因此,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