在我的情况下,一个页面包含下拉控件。这实际上是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命令时,它会显示所选的值。 谁能告诉我哪里错了。
答案 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!")));
obj.selectByVisibleText("EQUALS");
obj.selectByIndex(0);
obj.selectByValue("eq");
选择任何人&让我知道,如果这对你有所帮助。 如果按ID查找对您没有帮助,请更改查找元素定位器选择选项。使用xpath而不是id。