2016-10-10 75 views
0

我在点击注册标签后显示用户选择的下拉菜单。但使用硒我不能选择任何选项。硒中下拉菜单的选择选项

driver.findElement(By.id("signup")).click(); 
WebDriverWait wait = new WebDriverWait(driver,15); 
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
Select drop = new Select(driver.findElement(By.id("user_type_select"))); 
drop.selectByIndex(2); 

注册选项卡出现,但未选择下拉菜单。有任何想法吗?

+0

请提供[mcve] – charlietfl

+0

隐式等待是指元素存在,但不保证可点击性或某些行为。没有你想要自动化的页面,很难说 - 例如[jqueryui.selectmenu](https://jqueryui.com/selectmenu/)隐藏了原来的'select' - 存在但是从不可见 - 并且用一组包含嘲笑选择的事件处理程序的节点替换它,所以[可能有麻烦自动化](http://stackoverflow.com/questions/28947955/how-to-automate-jqueryui-selectmenu-with-selenium-web-driver-selenium-ide)。其他js UI库可能会出现不同的问题。 –

+1

@Amarendra,请跟踪任何堆栈跟踪? –

回答

0

你确定选择10s后就绪了吗? 试试这个:

waiter.until(ExpectedConditions.presenceOfElementLocated(By.id("user_type_select"))); 
0

等待元素加载和javascript执行总是更好。在结束时,javascript是网页完成的最后一个动作,因此请检查它的等待时间。下面的示例代码。

wait.equals((((JavascriptExecutor) driver).executeScript("return document.readyState").equals("complete")));