Подтвердить что ты не робот

Ошибка при попытке принять всплывающее окно js с помощью Codeception и Yii2

Я пытаюсь закрыть всплывающее окно подтверждения js, сгенерированное Yii2, для подтверждения удаления записи, в данном случае пользователя, с помощью Codeception и его.

Выше была ошибка:

[WebDriverException] Не удалось выполнить декодирование удаленного ответа JSON. Код ошибки: 4 Ответ: "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 ":" "," запрос ":" "," файл ":" alert_text "," каталог ":" / "," путь ":" /alert _text "," родственник ":" /alert _text "," порт ":" "," хозяин ":" "," пароль ":" "," пользователь ":" "," USERINFO ":" "," власть ":" "," протокол ":" "," источник ":" /alert _text "," queryKey ": {}," куски ": [" alert_text "]}," urlOriginal ":" /сеанса/cac855f0-e7f8-11e4-ae75-8baa74cf41b1/alert_text"} '

Выше мой код:

<?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));
4b9b3361

Ответ 1

Насколько я знаю, приведенный ниже код говорит, что Codeception полностью изменяет окно браузера. Я буквально просто написал тест с этим точным блоком кода, чтобы изменить окно браузера. Возможно, попробуйте удалить это или прокомментировать его и попробовать запустить тест еще раз? Насколько я могу видеть, всплывающие окна выглядят нормально.

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