Codeception WebDriver executeInSelenium问题(给出了错误的实例)

时间:2014-05-22 05:34:27

标签: selenium codeception remotewebdriver

我正在尝试使用WebDriver在代码中切换到新打开的窗口。 我使用了手册中的代码,所以:

    $I->executeInSelenium(function (\Webdriver\Session $webdriver) {
        $handles=$webdriver->window_handles();
        $last_window = end($handles);
        $webdriver->focusWindow($last_window);
    });

不幸的是,webdriver由于某种原因不是Webdriver \ Session的实例而是RemoteDriver

的实例
  [ErrorException] Argument 1 passed to
  Codeception\Module\magicguyHelper::Codeception\Module\{closure}()
  must be an instance of WebDriver\Session, instance of RemoteWebDriver given,
  called in 
  phar:///tester/codecept.phar/src/Codeception/Module/WebDriver.php
  on line 1038 and defined 

任何人都明白为什么会出现这个问题?

1 个答案:

答案 0 :(得分:1)

尝试switchTo()代替focusWindow()WebDriver作为参数(不是WebDriver\Session):

$I->executeInSelenium(function (\Webdriver $webdriver) {
    $handles=$webdriver->getWindowHandles();
    $last_window = end($handles);
    $webdriver->switchTo()->window($last_window);
});