Как исправить ошибку element not interactable?

Использую Chrome Driver (фреймворк Yii2), запускаю такой командой
D:\ChromeDriver\chromedriver.exe --url-base=/wd/hub

Acceptance.suite.yml
class_name: AcceptanceTester
modules:
    enabled:
        - WebDriver:
              url: http://arctic/
              window_size: false # disabled in ChromeDriver
              port: 9515
              browser: chrome
        - Yii2:
            part: orm
            entryScript: index-test.php
            cleanup: false

Тест
public function _before(AcceptanceTester $I)
	{
		$I->amOnPage('/admin');
		$I->fillField('FormLogin[username]', 'admin');
		$I->fillField('FormLogin[password]', 'admin');
		$I->click('Войти');
		$I->click('Меню');
    }

Ошибка
1) AdminMenuAcceptCest: Try to test
 Test  tests\acceptance\AdminMenuAcceptCest.php:tryToTest
                                                                                                                                  
  [Facebook\WebDriver\Exception\ElementNotInteractableException] element not interactable
  (Session info: chrome=80.0.3987.100)  
                                                                                                                                  

Scenario Steps:

 2. $I->fillField("FormLogin[username]","admin") at tests\acceptance\AdminMenuAcceptCest.php:8
 1. $I->amOnPage("/admin/main") at tests\acceptance\AdminMenuAcceptCest.php:7

#1  D:\OSPanel-new\domains\arctic_dev\vendor\php-webdriver\webdriver\lib\Exception\WebDriverException.php:95
#2  D:\OSPanel-new\domains\arctic_dev\vendor\php-webdriver\webdriver\lib\Remote\HttpCommandExecutor.php:370
#3  D:\OSPanel-new\domains\arctic_dev\vendor\php-webdriver\webdriver\lib\Remote\RemoteWebDriver.php:584
#4  D:\OSPanel-new\domains\arctic_dev\vendor\php-webdriver\webdriver\lib\Remote\RemoteExecuteMethod.php:27
#5  D:\OSPanel-new\domains\arctic_dev\vendor\php-webdriver\webdriver\lib\Remote\RemoteWebElement.php:60
#6  Codeception\Module\WebDriver->fillField
#7  D:\OSPanel-new\domains\arctic_dev\tests\_support\_generated\AcceptanceTesterActions.php:1505
#8  D:\OSPanel-new\domains\arctic_dev\tests\acceptance\AdminMenuAcceptCest.php:8
#9  AdminMenuAcceptCest->_before

Первый раз тест отработал нормально, ввел данные и авторизовался, на второй раз вылезла ошибка, с чем это может быть связано?
  • Вопрос задан
  • 5018 просмотров
Решения вопроса 1
evmusonov
@evmusonov Автор вопроса
Ошибка возникает из-за JS, который не успевает отработать (или вообще не отрабатывает), решил проблему добавление этого кода
$I->executeInSelenium(function(RemoteWebDriver $webdriver) {
			$webdriver->executeScript("$('#login_block').modal('show');");
		});

Элемент был скрыт, поэтому его не видел обработчик
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы