硒 - 被困在一个iframe中

时间:2014-07-27 11:31:13

标签: java selenium selenium-webdriver

我正在尝试导航到包含我导航到的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>

尝试了我能想到的一切,我仍然被困在了这个框架中。

1 个答案:

答案 0 :(得分:0)

<强>编辑。我编辑的帖子可能没有保存。

您是否尝试过以下操作?当您在框架内完成工作时,只需在合适的位置使用以下行,并将焦点设置为默认内容

Driver.SwitchTo().Window(Driver.WindowHandles.FirstOrDefault());