如何压缩我的自动下拉测试用例?

时间:2017-10-31 13:53:20

标签: python selenium-webdriver drop-down-menu testcase

我有一个测试用例,它选择一个下拉字段,然后将遍历下拉列表中的每个选项。在每个选项上,我正在验证文本,在最后一个下拉列表中,我还要验证将显示的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循环来选择每个选项并验证文本,然后在最终选项中验证其他字段吗?

感谢任何帮助/建议

1 个答案:

答案 0 :(得分:0)

我设法使用.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]