在我的 webdriver 测试中,我切换到 iframe 并执行客户端导航,然后我想获取 iframe 的新 url 来执行一些断言:
WebElement iframe = driver.findElements(By.tagName("iframe")).get(0);
driver.switchTo().frame(iframe);
// Click a link and navigate within the iframe.
. . .
driver.switchTo().defaultContent();
// Try to find the new url of the iframe.
iframe = driver.findElements(By.tagName("iframe")).get(0);
driver.switchTo().frame(iframe);
String appDetailPageUrl = iframe.getAttribute("src");
但是失败了
org.openqa.selenium.StaleElementReferenceException: stale element reference: element is not attached to the page document.
有什么想法吗?
最佳答案
当您切换到iframe
时驱动程序上下文更改为 iframe
,因此所有先前定位的元素都丢失并且现在已过时。
此外,如果 src
属性是 <iframe>
的一部分您无法从 iframe
内部找到它,驱动程序范围从 <html>
开始里面有标签。
取开关前的属性
iframe = driver.findElements(By.tagName("iframe")).get(0);
String appDetailPageUrl = iframe.getAttribute("src");
driver.switchTo().frame(iframe);
关于java - 在 iframe 内导航后无法再次获取 iframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54782339/