Я пытаюсь закрыть всплывающее окно подтверждения js, сгенерированное Yii2 для подтверждения удаления записи, в данном случае пользователя, с Codeception и его.
Ниже приведена ошибка:
[WebDriverException] JSON-декодирование удаленного ответа не удалось.
Код ошибки: 4
Ответ: ‘Недопустимый метод команды — 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));
Насколько я знаю, код ниже говорит Codeception, чтобы полностью изменить окно браузера. Я буквально только что написал тест с этим точным блоком кода, чтобы изменить окно браузера. Возможно, попытайтесь удалить это или прокомментировать и снова запустить тест? Насколько я вижу, всплывающие части выглядят нормально
$I->executeInSelenium(function (Webdriver $webdriver) {
$handles=$webdriver->getWindowHandles();
$last_window = end($handles);
$webdriver->switchTo()->window($last_window);
});
Других решений пока нет …