Selenium WebDriver即使切换到iframe也无法在iframe中定位元素
通过driver.switchTo().frame(“contentIframe”)进入iframe不生效,如下:
driver.switchTo().frame("contentIframe");
contentIframe为iframe的id
解决办法(亲测有效)
-似乎在寻找html元素时我没有等待足够的时间。于是我增加了显式等待方法的超时。超时时间设置10秒。
WebDriverWait wait = new WebDriverWait(driver, 10);
By by = By.id("portalIframe");
try {
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(by));
} catch (TimeoutException e) {
e.printStackTrace();
}
最终效果明显,可以获取到iframe中的元素了。