使用java从selenium中的下拉列表中选择值的替代方法

时间:2017-06-13 09:16:54

标签: selenium xpath

我在使用java从selenium的下拉列表中选择值时遇到错误。

//Select the Warehouse
Select Warehouse= new Select(driver.findElement(By.xpath(Xpath.warehouse_SVR)));
System.out.println("Element is identified ");
Warehouse.selectByValue("3");
System.out.println("Value is selected");
Thread.sleep(1000);
js.executeScript("window.scrollTo(0,0)");

我使用了与下拉列表中的值相关的方法。这里我提到了.selectByValue()方法。即使我使用.selectByIndex()或.selectByVisibleText()方法,我仍然有错误。从下拉列表中选择值的可能方法是什么?

这是该特定下拉列表的Html代码。

<select id="ctl00_cphbody_rptRNDViewer_ctl04_ctl05_ddValue" class="aspNetDisabled" style="font-family: Verdana; font-size: 8pt; width: 217px;" onchange="javascript:setTimeout('__doPostBack(\'ctl00$cphbody$rptRNDViewer$ctl04$ctl05$ddValue\',\'\')', 0)" name="ctl00$cphbody$rptRNDViewer$ctl04$ctl05$ddValue">
<option value="1">- All -</option>
<option value="2">Damage Warehouse-1000003061</option>
<option value="3" selected="selected">Primary Warehouse-1000003061</option>
<option value="4">VAN</option>
</select>

3 个答案:

答案 0 :(得分:0)

请查看以下内容 使用implcit等待,Warehouse.selectByValue(&#34; 3&#34;);

答案 1 :(得分:0)

尝试使用以下更新代码:

Select Warehouse= new Select(driver.findElement(By.xpath(Xpath.warehouse_SVR)));
System.out.println("Element is identified ");
WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(presenceOfElementLocated(Warehouse)); 
Warehouse.selectByValue("3");
System.out.println("Value is selected");
Thread.sleep(1000);
js.executeScript("window.scrollTo(0,0)");

希望它会对你有所帮助。

答案 2 :(得分:0)

  public boolean selectValueFromDropDown(String searchValue) {      

  WebElement element = driver.findElement(By.Id("ctl00_cphbody_rptRNDViewer_ctl04_ctl05_ddValue"));     
  element.click();
  element.sendKeys(searchValue);
  element.sendKeys(Keys.ENTER);
  return true;
    }