Phantomjs webdriver:无法从iframe切换到defaultContent

时间:2014-05-19 08:34:18

标签: php selenium webdriver phpunit phantomjs

我正在进行一些功能测试,在Webdriver模式下使用PhantomJS,PHPUnit和Facebook Webdriver实现。一切都很好,但我遇到了iframe问题。

如果我更改为Iframe,则无法切换回主文档。驱动程序一直指向iframe。

我准备了一个失败的超简单示例:

<html>
    <body>
        <p id="hi">Hi</p>
        <iframe id="test_iframe" src="http://example.com"></iframe>
    </body>
</html>

我执行此测试:

$driver = \RemoteWebDriver::create(
    "http://localhost:4444",
    array(
        \WebDriverCapabilityType::BROWSER_NAME => 'phantomjs'
    ),
    5000
);
$driver->get("http://localhost/test.php");
$driver->wait(5)->until(
    \WebDriverExpectedCondition::visibilityOfElementLocated(
        \WebDriverBy::cssSelector("p#hi")
    )
);

$driver->switchTo()->frame(
    $driver->findElement(
        \WebDriverBy::id("test_iframe")
    )
);

$driver->wait(7)->until(
    \WebDriverExpectedCondition::presenceOfElementLocated(
        \WebDriverBy::cssSelector("h1")
    )
);

$driver->switchTo()->defaultContent();
var_dump($driver->getPageSource());

我得到了iframe HTML转储。我已经尝试等待元素,睡几秒但没有任何作用。

任何人都有解决这个问题的线索?问候

0 个答案:

没有答案