selenium2网络驱动程序可以';找不到javascript新创建的元素

selenium2网络驱动程序可以';找不到javascript新创建的元素,java,webdriver,selenium-webdriver,Java,Webdriver,Selenium Webdriver,单击链接会触发创建新元素的操作。但是,在单击返回后调用driver.findElement(By.id(“”)找不到它 我尝试了以下代码来等待元素出现 wait.until(new ExpectedCondition() { public Boolean apply(WebDriver webDriver) { System.out.println("Searching ..."); return webDriver.findElement(By.id("itemTyp

单击链接会触发创建新元素的操作。但是,在单击返回后调用
driver.findElement(By.id(“”)
找不到它

我尝试了以下代码来等待元素出现

wait.until(new ExpectedCondition() 
{
    public Boolean apply(WebDriver webDriver) {
    System.out.println("Searching ...");
    return webDriver.findElement(By.id("itemType1")) != null;
                    }
});

但是直到超时我仍然找不到它。

您可以使用元素。isDisplayed()

Så这样做:

WebElement jrnrText = driver.findElement(By.id("id"))
if(jrnrText.isDisplayed()){
    wait.until(presenceOfElementLocated(BY.id]("id")))
}

Function<WebDriver, WebElement> presenceOfElementLocated(final By locator) {
    return new Function<WebDriver, WebElement>() {
        public WebElement apply(WebDriver driver) {
            return driver.findElement(locator)
        }
    }
}
WebElement jrnrText=driver.findElement(By.id(“id”))
if(jrnrText.isDisplayed()){
等待.until(通过.id](“id”)找到元素的存在)
}
定位元件的功能显示(最终由定位器确定){
返回新函数(){
公共WebElement应用(WebDriver){
返回驱动程序findElement(定位器)
}
}
}

是否可能在实际添加元素之前调用findElement?wait是多次调用“apply”函数,还是只调用一次?