无法使用带有代码的switchToWindow

时间:2014-10-30 09:59:14

标签: php selenium codeception

我在函数switchToWindow上练习了代码。但它不能与我合作

任何人都可以帮我解决我的问题。我想切换到登录弹出窗口输入电子邮件/密码,但我不能。  ![在此处输入图像说明] [1] 这是我的情景 在当前页面(第A页)上,单击登录按钮=>打开新窗口,供用户输入facebook的电子邮件/密码。点击提交按钮后,它将重定向到最后一个窗口(第A页)

Here is my code 

$I = new AcceptanceTester($scenario);
$I->amOnPage('/leaderboard'); 
$I->click('#fb-login');
$I->executeInSelenium(function (\Webdriver\Session $webdriver) {
    $handles=$webdriver->window_handles();
    $last_window = end($handles);
    $webdriver->focusWindow($last_window);
});
$I->fillField('#email','aaa@yahoo.com');
$I->fillField('#pass','aaa');
$I->click('//*[@id="u_0_1"]');

由于

2 个答案:

答案 0 :(得分:0)

使用以下代码:

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

然后

$I->switchToWindow();

如果需要,回到主窗口

答案 1 :(得分:0)

试试这个,

$I->executeInSelenium(function (\Facebook\WebDriver\Remote\RemoteWebDriver $webdriver) {
             $handles=$webdriver->getWindowHandles(); 
             $first_window = ($handles[0]);      
             $last_window = ($handles[1]);
             $webdriver->switchTo()->window($last_window);      
        });