我正在进行一些功能测试,在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转储。我已经尝试等待元素,睡几秒但没有任何作用。
任何人都有解决这个问题的线索?问候