我有一个下拉列表,如下图所示
我需要通过单击与名称对应的复选框来处理多选。 我正在使用数据驱动的框架。我从excel获取数据。 现在我已编写代码点击下拉列表中的箭头,然后单击相应的复选框。我需要一个更好的解决方案来处理这样的多个选择。
答案 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作为此方法的参数包含在内,并使该方法保持静态,具体取决于您的类的设置方式。)