0

我的应用程序中有两个下拉列表,选择第一个下拉列表后,第二个下拉列表变为启用。我面临的问题是我的代码能够从第一个下拉列表中选择值,但它没有从第二个下拉列表中选择值。我收到错误消息:

线程“主”org.openqa.selenium.InvalidElementStateException 中的异常:元素不得隐藏、禁用或只读(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:138 毫秒

选择第一个下拉列表后,我也尝试过等待,但仍然出现此错误。

我的Java代码:

第一个下拉列表的代码:

  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);

第二个下拉代码:

   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">

错误:线程“主”org.openqa.selenium.InvalidElementStateException 中的异常:元素不得隐藏、禁用或只读(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:138 毫秒

4

2 回答 2

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");
于 2013-10-22T05:26:26.213 回答
0

尝试使用SelectClass 作为第二个下拉菜单。

WebElement combo1 = driver.findElement(By.name(ctl00$ContentPlaceHolder1$ddlCountry));
    Select secondDrpDwn = new Select(combo1);
    secondDrpDwn.selectByValue("Test");
于 2013-10-08T11:29:04.977 回答