我正在尝试单击位于动态Web表格内的网页中的下拉菜单。
我尝试使用driver.findelement,actions.movetoElement,javascript,Robot按键找到并选择一个选项,但是没有运气。
redis-cli -h RedisServerA
redis-cli -h RedisServerB
我的DOM如下所示
redis-cli -h server.example.com -p 23679
redis-cli -h server.example.com
日志中的错误消息如下:
public void selectFromDropDown(String value) throws Exception
{
List<WebElement> elem = driver.findElements(By.xpath("//tbody[@id='tbodyAlternateIds']//select"));
for(int i=1;i<elem.size()-1;i++) {
System.out.println("Element Size>>>>>>>>" + elem.size());
WebElement Identifiers = driver.findElement(By.xpath("//select[@id='alternateIds["+i+"].type.description']"));
Select select = new Select(Identifiers);
if(select.getFirstSelectedOption().getText().isEmpty()) {
if(!(select.getFirstSelectedOption().getAttribute("value").equalsIgnoreCase(value))){
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.getElementById('alternateIds["+i+"].type.description').value = "+value+";");
}
}
}
}
select中的ID是动态的。我可以单击“新建”按钮,然后继续进行下拉框列表。因此,每个下拉框ID都按[1],[2]等进行分类和递增...(alternateIds [1] .type.description)
答案 0 :(得分:0)
您需要在value
周围加上引号,例如:
js.executeScript("document.getElementById('alternateids[" + i + "].type.description').value='" + value + "'");