在Selenium Webdriver中如何处理这种包含复选框的多选下拉列表

时间:2014-04-22 05:24:33

标签: java javascript jquery selenium selenium-webdriver

我有一个下拉列表,如下图所示

enter image description here

我需要通过单击与名称对应的复选框来处理多选。 我正在使用数据驱动的框架。我从excel获取数据。 现在我已编写代码点击下拉列表中的箭头,然后单击相应的复选框。我需要一个更好的解决方案来处理这样的多个选择。

2 个答案:

答案 0 :(得分:0)

1)点击下拉列表中的箭头,下拉列表将会打开。

2)将整个下拉列表放入Webelement。

3)在上面的WebElement下创建一个WebElement列表,其中tag name等于“tr”/“li”(取决于你的html代码)。现在,此列表包含下拉列表的所有多选条目。

4)获取上述WebElement列表中每个WebElement的文本。

5)从Excel中读取数据。

6)来自第(4)点和第4点的数据。 point(5)相等,使用XPATH单击相应的复选框。

如果你需要进一步解释下拉源的来源。 要么 给任何具有相同类型下拉列表的webaddress。

答案 1 :(得分:0)

做了一些研究之后,我将假设这个多选下拉列表是这个jQuery插件提供的下拉列表:

<强> http://www.jquerybyexample.net/2013/05/how-to-make-multiple-select-dropdown-list-jquery.html

您可以在此处找到可以检查元素的示例:

<强> http://wenzhixin.net.cn/p/multiple-select/

每个复选框都可以找到xpath,如下所示:

//label[contains(text(), 'Name of Option goes Here')]//input

打开下拉列表后,可以在代码中使用for循环,并用xpath选择每个元素:

public void selectOptions(String... options) {
    //code to open dropdown goes here
    for(String option : options) {
        driver.findElement(By.xpath("//label[contains(text(), '" + option + "')]//input")).click();
    }
}

(注意:您可能还希望将WebDriver作为此方法的参数包含在内,并使该方法保持静态,具体取决于您的类的设置方式。)