Selenium Python检查变量值是否为空。我得到假,但有一个价值

时间:2016-04-24 15:17:14

标签: python python-2.7 selenium selenium-webdriver

我有一个函数来检查变量是否为空。如果变量确实有值,我希望函数返回True。 如果变量没有赋值,我希望函数返回False。

如果有值,我的函数返回False。如果变量有值,我希望函数返回True 我的逻辑似乎不正确。我需要一些帮助才能做到正确。

我的功能是:

def is_view_report_showing_results(self):
    usn_row_cell1_element = self.get_element(By.XPATH, '//table[@id="reporting_view_report_dg_main_body"]/tbody/tr[1]/td[3]')
    source_fields_row_cell1_element = self.get_element(By.XPATH, '//table[@id="reporting_view_report_dg_main_body"]/tbody/tr[1]/td[4]')
    #return (usn_row_cell1_element.text is not None) and (source_fields_row_cell1_element.text is not None)
    return not (usn_row_cell1_element.text == "") and (source_fields_row_cell1_element.text == "")

self.assertTrue(reports_view_results_page.is_view_report_showing_results(), "Problem with viewing report. Please see log for details")

变量usn_row_cell1_element中的值是字符串值" 2" 变量source_fields_row_cell1_element中的值是一个字符串"地址"

我将尝试这种方式:

def is_view_report_showing_results3(self):
    usn_row_cell1_element = self.get_element(By.XPATH, '//table[@id="reporting_view_report_dg_main_body"]/tbody/tr[1]/td[3]')
    source_fields_row_cell1_element = self.get_element(By.XPATH, '//table[@id="reporting_view_report_dg_main_body"]/tbody/tr[1]/td[4]')
    #return (usn_row_cell1_element.text is not None) and (source_fields_row_cell1_element.text is not None)
    if (usn_row_cell1_element.text == "") and (source_fields_row_cell1_element.text == "") == False:
        return False
    else:
        return True

谢谢Riaz

1 个答案:

答案 0 :(得分:2)

只需检查"truthiness"值:

return usn_row_cell1_element.text and source_fields_row_cell1_element.text

或者,如果要在至少有一个值为非空的情况下通过测试,请使用or

return usn_row_cell1_element.text or source_fields_row_cell1_element.text

请注意,在这种情况下,函数会返回一个字符串值,但这不是问题,因为根据docsassertTrue会进行bool(x) is True检查。