2016-04-24 15 views
0

変数が空白かどうかを調べる関数があります。変数に値がある場合は、関数がTrueを返すようにします。 変数に値が割り当てられていない場合は、関数がFalseを返すようにします。Selenium Pythonは、変数の値が空白でないかどうかをチェックします。私はFalseになっていますが、値があります

値がある場合、私の関数はFalseを返しています。変数に値がある場合、関数がTrueを返すようにします。
ロジックが正しくないようです。私はそれを正しくするためにいくつかの助けが必要です。

My機能は次のとおりです。

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 

おかげで、リアズ

答えて

2

単に値の"truthiness"をチェック:

return usn_row_cell1_element.text or source_fields_row_cell1_element.text 

注:値の少なくとも1つが空であれば、テストを通過したい場合は、

return usn_row_cell1_element.text and source_fields_row_cell1_element.text 

をまたは、orを使用この場合、関数は文字列値を返しますが、これは問題ありません。docsによれば、assertTruebool(x) is Trueのチェックを行います。

+0

これは素晴らしいことです。ご協力いただきありがとうございます。 –

関連する問題