2013-10-08 109 views
0

我的應用程序中有兩個下拉列表,第二個下拉列表在選擇第一個下拉列表後啓用。我面臨的問題是我的代碼能夠從第一個下拉列表中選擇值,但它不會從第二個下拉列表中選擇值。我得到的錯誤爲:Selenium WebDriver:無法使用webdriver從下拉列表中選擇元素

異常線程「main」 org.openqa.selenium.InvalidElementStateException:元素不能被隱藏,禁用或只讀(警告:服務器未提供任何信息棧跟蹤) 命令持續時間或超時:138毫秒

我已經嘗試過等待,以及選擇第一個下拉列表,但仍然收到此錯誤。

我的Java代碼:

代碼1下拉:

WebElement combo= d1.findElement(By.name("ctl00$ContentPlaceHolder1$ddlAgency")); 
    System.out.println("proerty name for agent:" +combo); 
    combo.sendKeys("huma"); 
    //d1.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
    Thread.sleep(200); 

守則第2下拉:

WebElement combo1=d1.findElement(By.name("ctl00$ContentPlaceHolder1$ddlCountry")); 
    System.out.println("proerty name for country:" +combo1); 
    combo1.clear(); 
    combo1.click(); 
    combo1.sendKeys("Test"); 

HTML的第二下拉:

<select id="ctl00_ContentPlaceHolder1_ddlCountry" style="width:450px;"  onchange="fillval();" name="ctl00$ContentPlaceHolder1$ddlCountry"> 

錯誤: 異常線程「main」 org.openqa.selenium.InvalidElementStateException:元素不能被隱藏,禁用或只讀(警告:服務器未提供任何信息棧跟蹤) 命令持續時間或超時:138毫秒

回答

0

嘗試使用Select類作爲第二個下拉列表。

WebElement combo1 = driver.findElement(By.name(ctl00$ContentPlaceHolder1$ddlCountry)); 
    Select secondDrpDwn = new Select(combo1); 
    secondDrpDwn.selectByValue("Test"); 
+0

謝謝Hemche.I想你的代碼,現在我越來越線程「main」 org.openqa.selenium.NoSuchElementException以下錯誤例外:不能與價值定位選項:測試 – Huma

+0

請讓我知道我可以還有什麼爲此做。 – Huma

+0

我試過secondDrpDwn.selectByIndex(4); // secondDrpDwn.selectByVisibleText(「Test」);以及但仍然會出現同樣的錯誤「無法找到選項」。 – Huma

0

終於我得到了解決我的問題的工作。分享它,以便它也會幫助其他人。 以下代碼正在爲我工​​作。

   WebElement dropDownListBox =d1.findElement(By.cssSelector("option[value=\"Please Select Country\"]")); 
       dropDownListBox.click(); 

      WebElement combo1=d1.findElement(By.name("ctl00$ContentPlaceHolder1$ddlCountry")); 
      System.out.println("proerty name for country:" +combo1); 
      combo1.click(); 
      Select secondDrpDwn = new Select(combo1); 
      secondDrpDwn.selectByVisibleText("Test"); 
相關問題