无法使用选择从下拉列表中选择值

时间:2019-03-06 08:31:28

标签: selenium webdriver

我正在尝试在“设备”下拉列表中选择一些值,但出现错误-元素难以处理:元素当前不可见,可能无法操作

我们正在为我们的应用程序使用剔除js。 下拉菜单甚至没有打开。

I am using xpath - "//select[@class='deviceType']"

我能够使用webdriver等待此操作,这意味着xpath没问题,但是我无法在下拉列表中选择值

 Select device = new Select(deviceDrpDwn);
         device.selectByVisibleText(deviceOption);

这是我用来选择下拉值的代码。下拉菜单没有打开。

HTML code:
<div class="span9 select-device">
                <!-- ko if: sdeviceConfigMap -->
                        <label data-bind="text: ovd.ui.admin.hart.device">Device (Manufacturer ID, Device Type, User Extension, Characterization)</label>
                        <select tabindex="16" class="deviceType" data-bind="value: sselectedDeviceConfig, 
                                              optionsCaption : ovd.ui.admin.hart.selectDevice, 
                                              options: sdeviceConfigMap,
                                              optionsText: 'name',
                                              optionsValue: 'config_id', 
                                              event: { change: associateConfigWithValve}"><option value="">Select Device</option><option value="20">Dresser Masoneilan, SVI II AP / H7, initial, Linear</option><option value="21">Dresser Masoneilan, SVI II AP / H7, initial, Equal % (30)</option><option value="22">Dresser Masoneilan, SVI II AP / H7, initial, Quick Opening</option><option value="23">Dresser Masoneilan, SVI II AP / H7, initial, Linear</option></select>
                        <!-- /ko -->
                </div>  

enter image description here

2 个答案:

答案 0 :(得分:1)

您的元素在Webdriver集成时不可见。请等待该元素可见。

WebDriverWait wait=new WebDriverWait(driver,40); 
Select select=new Select(wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//select[@class='deviceType']"))));
select.selectByIndex(1); //n=1,2...n

或 select.selectByVisibleText(arg0);

答案 1 :(得分:0)

这对我有用:

WebElement下拉列表= driver.findElement(By.xpath(“ // select [@ class ='deviceType']”)));         dropdown.sendKeys(deviceOption);