选择DropDown值在浏览器中不可见

时间:2016-05-16 08:10:12

标签: jquery selenium-webdriver

在我的情况下,一个页面包含下拉控件。这实际上是Html代码的输入标签,使用ExtJs可以设置它的值。 现在我尝试使用webDriver自动执行此控制值选择。以下是我执行此代码的脚本。控制的默认值是“等于”。

Here is my Html code and control

现在我尝试使用webDriver自动选择此控件值。以下是我使用的脚本。

@Test(priority=4, dependsOnMethods = {"GoToAssesssmentMetaDataSearch"},alwaysRun = true)
public void SelectSearchCriteriaAssesssmentMetaDataSearch(){
      mDriver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);    
      JavascriptExecutor jse  = (JavascriptExecutor)mDriver;
      ((JavascriptExecutor)mDriver).executeAsyncScript("jQuery('.x-form-field.x-form-text.x-form-text-default.x-form-focus.x-field-form-focus.x-field-default-form-focus').val('In');");
      mDriver.manage().timeouts().setScriptTimeout(15, TimeUnit.SECONDS);
}

此脚本成功运行并且测试通过。但是在GUI窗口(IntPut标签)中没有显示在脚本中设置运行时间的实际值,即' In'在这种情况下。当我在WenDriver Browser实例的控制台窗口中检查相同的jQuery命令时,它会显示所选的值。 谁能告诉我哪里错了。

2 个答案:

答案 0 :(得分:0)

试试这个:

WebElement element = (new WebDriverWait(driver, 10))
   .until(ExpectedConditions.elementToBeClickable(By.cssSelector("input#combobox-2006-bodyE1")));
driver.findElement(By.cssSelector("input#combobox-2006-inputE1")).sendKeys("In");

让我知道这是否有帮助..

注意先给出一些等待时间并确保元素存在

答案 1 :(得分:0)

请使用此

Select obj = new Select(driver.findElement(By.id("comobobox-2006-inputE!")));
  1. obj.selectByVisibleText("EQUALS");
  2. obj.selectByIndex(0);
  3. obj.selectByValue("eq");
  4. 选择任何人&让我知道,如果这对你有所帮助。 如果按ID查找对您没有帮助,请更改查找元素定位器选择选项。使用xpath而不是id。