我试图关闭由Yii2生成的确认js弹出窗口,以确认删除记录,在这种情况下是一个用户,使用Codeception和他的.
@H_502_16@
据我所知,下面的代码告诉Codeception完全改变浏览器窗口.我只是用这个确切的代码块写了一个测试来改变浏览器窗口.也许尝试删除它或评论它,并尝试再次运行测试?我可以看到弹出的部分看起来很好
以上是错误:
[WebDriverException] JSON decoding of remote response Failed.
Error code: 4
The response: ‘Invalid Command Method – Request => {“headers”:{“Accept”:”application/json”,”Content-Length”:”0″,”Content-Type”:”application/json;charset=UTF-8″,”Host”:”127.0.0.1:4444″},”httpVersion”:”1.1″,”method”:”GET”,”url”:”/alert_text”,”urlParsed”:{“anchor”:””,”query”:””,”file”:”alert_text”,”directory”:”/”,”path”:”/alert_text”,”relative”:”/alert_text”,”port”:””,”host”:””,”password”:””,”user”:””,”userInfo”:””,”authority”:””,”protocol”:””,”source”:”/alert_text”,”queryKey”:{},”chunks”:[“alert_text”]},”urlOriginal”:”/session/cac855f0-e7f8-11e4-ae75-8baa74cf41b1/alert_text”}’
以上是我的代码:
<?PHP $username = 'foobar'; $email = 'foo@bar.com'; $I = new AcceptanceTester($scenario); $I->wantTo('Check that users can update their passwords'); $I->haveInDatabase('user',array('username' => $username,'email' => $email)); $id = $I->grabFromDatabase('user','id','email' => $email)); $I->amOnPage("/backend/web/index.PHP/user/$id"); $I->see('Borrar'); $I->click('Borrar'); $I->wait(3); ## This line throws the error $I->seeInPopup('eliminar este usuario'); ## Trying to change to the popup. This doesn't throw any error $I->executeInSelenium(function (Webdriver $webdriver) { $handles=$webdriver->getWindowHandles(); $last_window = end($handles); $webdriver->switchTo()->window($last_window); }); $I->pressKey('body',\WebDriverKeys::ENTER); ## This throwed the error before $I->acceptPopup(); $I->wait(1); $I->seeInCurrentUrl('user/list'); $I->dontSeeInDatabase('user','email' => $email));
$I->executeInSelenium(function (Webdriver $webdriver) { $handles=$webdriver->getWindowHandles(); $last_window = end($handles); $webdriver->switchTo()->window($last_window); });