2016-08-24 61 views
4

我想从2个Ajax下拉字段中选择特定值。第一个下拉选项列表变得打开但不选择选项,这就是为什么第二个下拉列表不具有约束力并发生误差作为无法使用硒webdriver选择ajax下拉值

org.openqa.selenium.NoSuchElementException:无法找到元素: 选项[值= “111”]。

请帮助我..我对硒

这里是我的代码的新..

Code

HTML块:

HTML block

+0

什么是你尝试使用selectByVisibleText时得到的错误? –

+0

嗨Swa,欢迎来到Stack Overflow。而不是将你的html代码和webdriver代码作为屏幕截图发布,如果你使用markdown将代码粘贴到相关的代码中,你的问题会更好。 –

+0

@swa,因为您已经解决了这个问题,请将其添加为解决方案并将其标记为答案。它将帮助其他用户对其进行调试。对于您在环境中使用的版本也添加更多的说明。 :) – jit

回答

2

由于Firefox浏览器(版本45)兼容性问题而发生此问题。 我使用硒3.0.0-beta2和测试对Firefox 45.0.2

当试图geckodriver(版本0.10.0)的OS窗口10 -64位,似乎有些不起作用。 它只适用于Firefox 48或以上版本。 它成功地在chromedriver上工作

0

你可以试试一个更具体的方式来与硒中的下拉菜单进行交互。 尝试是这样的:

Select dropdown = new Select(driver.findElement(By.id("cmbJob"))); 
dropdown.selectByValue("111"); 

你甚至可以定义一个函数与dropdwns工作:

protected void chooseOptionInSelectByValue(String selectId, String valueString) { 
    Select dropdown = new Select(driver.findElement(By.id(selectId))); 
    dropdown.selectByValue(valueString); 
} 

所以,你可以使用函数这样

chooseOptionInSelectByValue("cmbJob","111"); 

硒下拉对象有许多其他选项,如selectByText等。请在此处查看API:https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/support/ui/Select.html

+0

尝试以上的解决方案。和selectByVisibleText,通过使用Xpath也是同样的错误发生...请建议我 – Swa

+0

@里卡多..谢谢你这么多的回复.. 有一个隐藏的div在'第一次下拉'div。由于隐藏的div,是否有任何问题? – Swa

+0

@Swa这不应该是一个问题。但检查你的HTML,因为我可以看到两个选择与名称=“cmbJob”。您可以检查新的Select(driver.findElement(By.id(selectId)))是否找到右下拉列印到日志或system.out其元素的'dropdown.getOptions()'。请参阅https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/support/ui/Select.html#getOptions-- –

相关问题