【问题标题】:Selenium: Loop Through Each <option> in Drop Down ListSelenium:遍历下拉列表中的每个 <option>
【发布时间】:2010-01-05 18:25:29
【问题描述】:

我正在使用Selenium 来减轻我的测试负担,并且我有大约 1,000 个不同的下拉列表组合(分布在多个页面和下拉列表中)需要测试。基本上,我想做的是选择

我很难解释这一点,所以希望这个伪代码可以解决问题

选择中的foreach选项
  选择选项
  提交表格

    选择中的 foreach 选项
    选择选项
    提交表格

      断言该页面包含与所选值匹配的文本

编辑:我在录音机播放时从下拉列表中选择了值,但录音机似乎没有选择选定的下拉列表值。我也无法弄清楚如何为

我的第一个问题是这是否可能。如果是的话,有人可以指点我正确的方向让我开始吗?

编辑 2: 我不反对使用另一个网络自动化测试工具。如果有人对免费替代方案有任何建议,请随时提出建议。

【问题讨论】:

    标签: testing selenium


    【解决方案1】:

    Selenium 在什么语言中使用?如果您只是通过编写 HTML 来使用 Selenium,我建议您切换到编程语言并使用 Selenium RC——绑定可用于多种语言,例如 Java 和 Python。在 Java 中,我相信以下内容可以满足您的要求:

    void test(Selenium browser, String startPageUrl,
              String firstFormLocator, String firstSelectLocator,
              String secondFormLocator, String secondSelectLocator) {
        browser.open(startPageUrl);
        for (String option : browser.getSelectOptions(firstSelectLocator)) {
            browser.open(startPageUrl);
            browser.select(firstSelectLocator, "label=" + option);
            browser.submit(firstFormLocator); // Or click the submit button
            for (String subOption : browser.getSelectOptions(secondSelectLocator) {
                browser.open(startPageUrl);
                browser.select(firstSelectLocator, "label=" + option);
                browser.submit(firstFormLocator); // Or click the submit button
                browser.select(secondSelectLocator, "label=" + subOption);
                browser.submit(secondFormLocator); // Or click the submit button
                // Do your assertions
            }
        }
    }
    

    代码并不完全可读,因此可能值得花一些时间使用页面对象模式稍微抽象出页面。这也有助于使代码更易于维护,例如,当您更改元素的 ID 时,只需在页面对象中更改它,而不是每次测试。

    还要记住,这样做 1000 次不会很快。如果您在 Web 界面下方进行类似的测试以允许更快地从测试中获得反馈,然后测试 Web 界面是否正确使用较低层,这可能值得一看。另外,你真的需要 1000 次测试吗?这里的测试似乎有些冗余——如果最后 999 次通过了,第 1000 次测试会失败吗?

    【讨论】:

    • 如果您不想进行 foreach 例如,您也可以使用 index= 功能。 for(int i=0;i
    猜你喜欢
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-15
    相关资源
    最近更新 更多