0

我在使用 selenide (java) 从下拉列表中选择选项时遇到了一点问题。

这是 HTML 代码的一小段,我尝试按值选择选项:

HTML 片段

[Java代码]

    String dateRangeSearchFor = "YESTERDAY";
    ElementsCollection ListOfOptions = $(By.id("searchMaskForm:jobSearch_dateRange_input")).$$(By.tagName("option"));
    logger.info("selecting option");
    for (SelenideElement listElement : ListOfOptions)
    {
        String valueOfElement = listElement.getAttribute("value");
        if (valueOfElement.equals(dateRangeSearchFor))
        {
            //$(By.xpath("//*[@id='searchMaskForm:jobSearch_dateRange_input']/option[contains(., '"+dateRangeSearchFor+"')]")).setSelected(true);

            listElement.setSelected(true); break;

        }
    }

由于某种原因,代码不起作用,无论是文本还是索引。有什么建议么?

编辑:.click();selectOption();没有工作

4

4 回答 4

2

下面的代码将有所帮助:

String dateRangeSearchFor = "YESTERDAY";
Select select = new 
Select($(By.id("searchMaskForm:jobSearch_dateRange_input")));
select.selectByValue(dateRangeSearchFor);

就我而言,确实如此。

顺便说一句,如果您创建的自动化测试套件是自动化的一部分,包括功能测试和负载测试,此链接将帮助您将这些工具组合在一个系统中,检查一下 -如何自动化 Selenium 和 jmeter 测试

于 2017-02-11T10:03:06.907 回答
2

SelenideElement有方法selectOptionByValue(java.lang.String... value)

于 2017-04-12T14:19:32.217 回答
1

Selenide 提供以下方法来选择下拉列表中的选项。

  • 选择选项按值(值)
  • 选择选项(文本)
  • 选择选项(索引)
  • 选择选项包含文本(文本)
于 2019-10-17T12:26:14.640 回答
0

如果您知道下拉菜单中元素的索引,那么您可以使用内置的方法selectOption()

它看起来像这样:

$(CSS-selector).selectOption(index-of-element);

!!提醒:CS​​S 选择器必须指向<select>HTML 中的元素。

于 2021-02-02T12:03:13.500 回答