0

我需要创建基础 PHPUnit_Framework_TestCase,并使用 WebDriver 对象从站点获取元素。

我遇到的问题很奇怪。当我尝试执行本教程中的示例代码时,出现错误:

 PHP Fatal error:  Call to undefined method WebDriver::session() in /Users/mariann/Documents/PHPTests/Samples/WebDriverTest.php on line 47

问题似乎试图执行这行代码:

$this->_session = $web_driver->session();

setUp()方法:

public function setUp()
{
    parent::setUp();
    $web_driver = new WebDriver();
    $this->_session = $web_driver->session();
}

我有这个版本的 phpwebdriver-facebook。如何解决这个不可见的基本 WebDriver 方法的问题,然后继续?

感谢您提供的所有有用的答案。

4

1 回答 1

0

Facebook 已重新编写php-webdriver,教程已过时。

我们先更新到最新版本的https://github.com/facebook/php-webdriver。然后,试试这个setUp()README.md它与 in中的示例相同php-webdriver

public function setUp()
{
    parent::setUp();

    // the endpoint of the Selenium Standalone Server
    $host = 'http://localhost:4444/wd/hub'; // this is the default

    // edit the capability, choose firefox as the browser
    $capabilities = array(WebDriverCapabilityType::BROWSER_NAME => 'firefox');

    // create the RemoteWebDriver
    $this->driver = RemoteWebDriver::create($host, $capabilities);
}

public function testFoo()
{
    // navigate to https://www.google.com
    $this->driver->get('https://www.google.com');

    // get the input box
    $search_input = $this->driver->findElement(WebDriverBy::name('q'));

    // input 'php-webdriver'
    $search_input->sendKeys('php-webdriver');

    // do something else ... 
}

public function tearDown()
{
    parent::tearDown();

    // you may want to close the browser afterwards
    $this->driver->quit();
}
于 2013-09-05T07:49:01.803 回答