我正在尝试导航到包含我导航到的tinymce的框架的父框架:
driver.switchTo()框架(1)。 我试图使用driver.switchTo()。defaultContent();导航回父级但它不起作用,它不会抛出任何错误,它只是拒绝识别我知道在父页面上的任何webElement。
在我导航到tinymce的框架后,webdriver没有找到iframes。
final List<WebElement> iframes = driver.findElements(By
.tagName("iframe"));
System.out.println(iframes);
//console: [] (an empty List)
此代码先于导航发布到导航:
driver.findElement(
By.xpath("//*[starts-with(@id, 'ask_answer_link')]"))
.click();
Thread.sleep(5000);
driver.switchTo().frame(1);
WebElement i = driver.findElement(By.cssSelector("#tinymce"));
JavascriptExecutor js = null;
if (driver instanceof JavascriptExecutor) {
js = (JavascriptExecutor) driver;
}
js.executeScript("arguments[0].innerHTML = '<p>" + msg + "</p>'", i);
Thread.sleep(5000);
这个嵌套在主html文档中的文档,我无法摆脱它:
<!DOCTYPE >
<html style="overflow-y: hidden;" webdriver="true">
<head xmlns="http://www.w3.org/1999/xhtml"></head>
<body id="tinymce" class="mceContentBody " contenteditable="true" onload="window.parent.tinyMCE.get('ask_answer_field_92693607040').onLoad.dispatch();" style="overflow-y: hidden; padding-bottom: 50px;" dir="ltr">
<p></p>
</body>
</html>
尝试了我能想到的一切,我仍然被困在了这个框架中。
答案 0 :(得分:0)
<强>编辑。我编辑的帖子可能没有保存。
您是否尝试过以下操作?当您在框架内完成工作时,只需在合适的位置使用以下行,并将焦点设置为默认内容
Driver.SwitchTo().Window(Driver.WindowHandles.FirstOrDefault());