我想用PHPUnit Selenium选择一个iframe,但不知怎的,它似乎不工作。这是代码:PHPUnit - Selenium 2:如何选择没有ID和名称的iframe?
<body>
...
<div id="container">
<iframe src="x.html">
<html>
...
<body></body> <!-- this is the body I would like to get -->
...
</html>
</iframe>
</div>
...
</body>
而且PHP:
<?php
class Test extends PHPUnit_Extensions_Selenium2TestCase {
public function testIframe() {
$theFrame = $this->byCssSelector('#container iframe');
$this->frame($theFrame->getId());
$this->byCssSelector('body')->text('test');
}
}
如果我检查$ theFrame变量,它与ID = 5的PHPUnit_Extensions_Selenium2TestCase_Element,但不知何故$这个 - >框架($ theFrame-> getId())会抛出一个错误:
PHPUnit_Extensions_Selenium2TestCase_WebDriverException: Unable to locate frame: 5
Command duration or timeout: 32 milliseconds
Build info: version: '2.31.0', revision: '1bd294d', time: '2013-02-27 20:52:59'
System info: os.name: 'Linux', os.arch: 'amd64', os.version: '3.2.0-39-generic',
java.version: '1.7.0_17'
Session ID: 0192c3aa-d4a2-4c9d-bcca-bbd7139dd8c3
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities [{platform=LINUX, databaseEnabled=true, cssSelectorsEnabled=true,
javascriptEnabled=true, acceptSslCerts=true, handlesAlerts=true, browserName=firefox,
browserConnectionEnabled=true, nativeEvents=false, webStorageEnabled=true,
rotatable=false, locationContextEnabled=true, applicationCacheEnabled=true,
takesScreenshot=true, version=20.0}]
你知道为什么吗?
我得到一个错误:PHP致命错误:调用一个成员函数getDriver()一个非对象 - 恍如session不存在 – rochadk 2013-04-09 16:18:53
我不是PHP。基本上我来自Java背景。在Java中有一个名为driver.switchTo()。frame(0)的函数;'希望在PHP中应该有一个等价的方法。我从Google获得了上述解决方案。 – Hemanth 2013-04-09 16:24:57
好的,我猜测等效函数将是$ this-> frame($ index),但这也不起作用。感谢您的帮助:) – rochadk 2013-04-10 05:08:48