我有一个测试用例,它选择一个下拉字段,然后浏览下拉列表中的每个选项。在每个选项上,我正在验证文本,在最后一个下拉列表中,我还验证了将显示的 2 个额外字段。测试用例的简短版本如下所示:
messages = messages_page.Elements(self.driver)
messages.nav()
messages.advanced_search()
default = messages.advsearch_verify_received_dropdown()
if default == "Last Month":
messages.advsearch_select_received("Custom...")
else:
testrailFunctions.failed()
received_custom = messages.advsearch_verify_received_dropdown()
fields_revealed = messages.advsearch_verify_new_fields()
if received_custom == "Custom..." and after_and_before_revealed is True:
testrailFunctions.passed()
else:
testrailFunctions.failed()
我的测试用例中的这段代码仅涵盖 7 个可选选项中的 2 个。
有没有更好的方法来处理此测试用例中的所有下拉选项?我可以构造一个函数或 for 循环来选择每个选项并验证文本,然后在最后一个选项上验证其他字段吗?
任何帮助/建议不胜感激
我设法创建了一个列表,其中包含带有 .options 调用的下拉列表中的所有选项。然后我循环浏览选项以抓取他们的文本。.is_enabled() 也可以在 for 循环中作为额外的验证步骤工作。
def advsearch_search_in_options_text_check(self):
"""Loops through all options in the drop-down"""
dropdown = Select(self.driver.find_element(*Elements.advanced_search_in))
return [option.text for option in dropdown.options]