如何在 Selenium 中切换回默认内容(或切换 iframe)IDE
How to switch back to default content (or switch iframes) in Selenium IDE
我必须浏览一个由框架构建的网站,有点 "a special snowflake"
它最多包含 3 个 iframe,但只有一个 "active" 其他设置为显示:none。
每次我从一个页面移动到另一个页面时,新页面都会加载到另一个 iframe 中。
现在,如果我想访问新活动 iframe 中的元素,我会收到错误 "Element not found"
使用 Webdriver 我通过执行以下操作解决了问题
WebElement currentFrame = _driver.findElement(By
.xpath("//iframe[not(contains(@style,'display: none'))]"));
_driver.switchTo().frame(currentFrame);
....
Driver.SwitchTo().DefaultContent();
....
WebElement currentFrame = _driver.findElement(By
.xpath("//iframe[not(contains(@style,'display: none'))]"));
_driver.switchTo().frame(currentFrame);
在 Selenium IDE 中,我设法用
找到了我的第一帧
Command: selectFrame
Target: //iframe[not(contains(@style,'display: none'))]
但此时我卡住了。
如果我自己去点击命令序列,一切都很好,但是当我尝试做整个测试用例时,它没有在新的 iframe 中找到任何元素我什至试图暂停,等待 10 秒以防新框架出现尚未完成加载,但这没有任何区别。
看来我可以通过简单地切换到默认内容:
Command :selectWindow
没有目标,没有价值
我必须浏览一个由框架构建的网站,有点 "a special snowflake"
它最多包含 3 个 iframe,但只有一个 "active" 其他设置为显示:none。 每次我从一个页面移动到另一个页面时,新页面都会加载到另一个 iframe 中。
现在,如果我想访问新活动 iframe 中的元素,我会收到错误 "Element not found"
使用 Webdriver 我通过执行以下操作解决了问题
WebElement currentFrame = _driver.findElement(By
.xpath("//iframe[not(contains(@style,'display: none'))]"));
_driver.switchTo().frame(currentFrame);
....
Driver.SwitchTo().DefaultContent();
....
WebElement currentFrame = _driver.findElement(By
.xpath("//iframe[not(contains(@style,'display: none'))]"));
_driver.switchTo().frame(currentFrame);
在 Selenium IDE 中,我设法用
找到了我的第一帧Command: selectFrame
Target: //iframe[not(contains(@style,'display: none'))]
但此时我卡住了。 如果我自己去点击命令序列,一切都很好,但是当我尝试做整个测试用例时,它没有在新的 iframe 中找到任何元素我什至试图暂停,等待 10 秒以防新框架出现尚未完成加载,但这没有任何区别。
看来我可以通过简单地切换到默认内容:
Command :selectWindow
没有目标,没有价值