我有一个最初为空的 iframe,然后在页面上的交互过程中将元素动态加载到 iframe 中。我需要访问其中一个元素才能进入工作流的下一步。我使用以下代码:-
driver.switchTo().frame(iframeElement);
Wait wait = new FluentWait(driver).withTimeout(30,TimeUnit.SECONDS).
pollingEvery(2,TimeUnit.SECONDS).ignoring(NoSuchElementException.class);
WebElement pluginTwitterButton = wait.until(new Function() {
public WebElement apply( WebDriver driver ) {
return driver.findElement( By.id("twitter") );
}
});
稍后我需要做 pluginTwitterButton.click();
但我收到以下错误 - org.openqa.selenium.TimeoutException: Timed out after 30 seconds waiting for xxx.xxx.TestCaseSampleReply$1@1217e615 Build info: version: '2.25.0', revision: '17482', time: ' 2012-07-18 21:08:56' 系统信息:os.name:'Linux',os.arch:'amd64',os.version:'3.2.0-32-generic',java.version:'1.6 .0_24' 引起:org.openqa.selenium.NoSuchElementException:无法定位元素:{"method":"id","selector":"twitter"} 命令持续时间或超时:30.03 秒
我使用 firefox 驱动程序,selenium webdriver jar v.2.25.0 - 当 firefoxdriver 执行时,需要单击的元素是肉眼可见的,但 iframe 变量由于某种原因没有被刷新。我在这里想念什么?