Я использую Codeception для приемочного тестирования. На моем локальном компьютере у меня нет проблем с запуском тестов с селеном и хромированным драйвером. До 1 недели он также отлично работал на моем git, но теперь появляется эта ошибка.
"[PHPUnit\Framework\Exception] Неопределенный индекс: ЭЛЕМЕНТ"
локальный работает без ошибок.
Я уже искал эту ошибку и нашел подсказку, что я должен запустить селен с «-enablepassthrough false». Но это на самом деле не работает.
До этого 1 неделя при всех тех же настройках работает нормально.
это мой accept.suite.yml:
actor: AcceptanceTester
modules:
enabled:
- WebDriver:
url: 'https://website.com'
host: 'selenium__standalone-chrome'
port: 4444
browser: chrome
window_size: 1920x1080






Это сообщение об ошибке...
[PHPUnit\Framework\Exception] Undefined index: ELEMENT
... подразумевает, что у ChromeDriver от click() до кодецепция возникла проблема.
Согласно комментарий @reinholdfuereder в обсуждении facebook/php-webdriver — поддержка протокола W3C WebDriver:
Undefined index: ELEMENT в waitForElement() операции.waitForElement(), за которой следует, по-видимому, также успешная операция click(), но происходит сбой в операции waitForElementNotVisible().click() операция Codeception переводится в команду clickElement WebDriver, которая, по-видимому, больше не поддерживается ChromeDriver v75.Если вы используете ChromeDriver v75.x и Хром v75.x и видите эту ошибку, вам необходимо передать дополнительный chromeOptionsw3c, установленный в true.
Вы можете найти пару подробных обсуждений в:
Как объяснил @DebanjanB, установка указанной опции является решением, и это то, что вы получаете, обновляя facebook/php-webdriver до версии >= 1.7.0.
Я думаю, что еще более надежным решением (или привычкой) для вашего приложения является использование определенного образа докера.
Ваш yaml заставляет меня предположить, что вы используете образ докера selenium/standalone-chrome. В своем последнем выпуске (3.141.59-palladium) они обновили включенную версию Chrome с 74 до 75 (см.: https://github.com/SeleniumHQ/докер-селениум/релизы).
На вашем локальном компьютере, вероятно, все еще работает более старая версия с Chrome 74, поэтому проблем нет. Но всякий раз, когда вы перестраиваете докер-машину (например, при использовании какой-либо среды CI), вы получаете последнюю версию. В данном случае это новая версия Chrome. Что «заставляет» вас также обновить вашу машину php с помощью нового facebook/php-webdriver.
Я бы предложил указать версию изображения, чтобы предотвратить эти нежелательные побочные эффекты, например
image: selenium/standalone-chrome:3.141.59-oxygen
или, если вы уже запустили его с Chrome 75, 3.141.59-palladium.
Для Chrome/ChromeDriver v79 помогла установка w3c на false в acceptance.suite.yml:
modules:
enabled:
- WebDriver:
capabilities:
chromeOptions:
w3c: false
Это единственный вариант, который работает для меня на Mac с Chrome.
кто-нибудь знает, как объявить это для FF?
Возможный дубликат ошибка «[PHPUnit\Framework\Exception] Undefined index: ELEMENT» при запуске кода с помощью WebDriver