2015-04-21 24 views
11

Sto provando a chiudere un popup js di conferma generato da Yii2 per confermare la cancellazione di un record, in questo caso un utente, con Codeception e il suo.Errore durante il tentativo di accettare un popup js nativo con Codeception e Yii2

Sopra è l'errore:

[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"}'

Sopra è il mio codice:

<?php 
$username = 'foobar'; 
$email = '[email protected]'; 

$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', array('username' => $username, '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', array('username' => $username, 'email' => $email)); 

risposta

0

Per quanto ne so il codice qui sotto sta dicendo Codeception per cambiare la finestra del browser del tutto. Ho letteralmente appena scritto un test con questo esatto blocco di codice per cambiare la finestra del browser. Forse prova a rimuovere questo o commentarlo e prova a eseguire nuovamente il test? Le parti popup sembrano ok per quanto posso vedere

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