Сумерки с селеном не работают с Ларадоком
Я запускаю Dusk, чтобы проверить свое приложение Laravel. Я недавно переключился на Laradock, который занял некоторое время, чтобы настроить все это, поскольку у меня мало опыта работы с Docker, но теперь все это, кажется, работает. Вот только селен, похоже, работает не так, как надо.
Я начинаю и открываю свое рабочее пространство вот так:
sudo docker-compose up -d nginx postgres beanstalkd selenium
sudo docker-compose exec --user=laradock workspace bash
и затем
php artisan dusk
1) Tests\Browser\SuccessLoginTest::test_user_can_login
Facebook\WebDriver\Exception\NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"body textarea[name='email']"}
(Session info: headless chrome=75.0.3770.90)
For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'
System info: host: 'f8c1169cd1a3', ip: '172.18.0.3', os.name: 'Linux', os.arch: 'amd64', os.version: '5.4.7-100.fc30.x86_64', java.version: '1.8.0_212'
Driver info: driver.version: unknown
Я получаю скриншот неудачного теста, показывающий веб-сайт, и на нем элемент and, который он, похоже, не может найти. До того, как я переключился на Laradock, все работало нормально, так что проблемы, похоже, с селеном. Моя настройка выглядит так, и я использую Laravel 5.7.28
protected function driver()
{
$options = new ChromeOptions();
$options->addArguments([
'--headless',
'--no-sandbox',
'--disable-gpu',
'--window-size=1920,1080',
'--ignore-certificate-errors'
]);
$capabilities = DesiredCapabilities::chrome();
$capabilities->setCapability(ChromeOptions::CAPABILITY, $options);
if (env('USE_SELENIUM', 'false') == 'true') {
return RemoteWebDriver::create(
'http://selenium:4444/wd/hub', $capabilities
);
} else {
return RemoteWebDriver::create(
'http://localhost:9515', $capabilities
);
}
Ответы - Сумерки с селеном не работают с Ларадоком / Dusk with Selenium not working with Laradock

12.01.2020 03:39:15
Это сообщение...
Facebook\WebDriver\Exception\NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"body textarea[name='email']"}
(Session info: headless chrome=75.0.3770.90)
For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:53'
System info: host: 'f8c1169cd1a3', ip: '172.18.0.3', os.name: 'Linux', os.arch: 'amd64', os.version: '5.4.7-100.fc30.x86_64', java.version: '1.8.0_212'
Driver info: driver.version: unknown
...подразумевает, что исключение NoSuchElementException было вызвано во время выполнения программы.
Немного подробностей о ваших тестовых конфигурационных интермах версии chromedriver помогли бы нам лучше отладить вашу проблему. Однако вам нужно позаботиться о нескольких вещах:
Целью аргумента
--disable-gpu
было включить google-chrome-headless на платформе windows. Это было необходимо, поскольку SwiftShader ранее не выполнял assert на Windows в безголовом режиме. Эта проблема была решена с помощью Headless: make --disable-gpu flag ненужным . Поскольку вы находитесь на laravel / laravel-dusk / laradock в linux , вам нужно удалить строку кода:'--disable-gpu' // applicable to windows os only
В соответствии с вашим вопросом, как вы используете chrome=75.0 . вам нужно обеспечить:
- ChromeDriver обновлен до ChromeDriver v75. 0 в соответствии с примечаниями к выпуску chromedriver=75.0
- Сказав это, в идеале вам нужно убедиться, что:
- JDK обновлен до текущих уровней JDK 8u222 .
- Селен обновлен до текущих уровней версии 3.141.59 .
- ChromeDriver обновляется до текущей ChromeDriver v79.0.3945.36 уровень.
- Chrome обновлен до текущего уровня Chrome версии 79.0. (согласно примечаниям к выпуску ChromeDriver v79. 0)
- Очистите рабочую область проекта через IDE и перестроите проект только с необходимыми зависимостями.
- (Только WindowsOS ) используйте CCleaner tool, чтобы стереть все хлопоты ОС до и после выполнения Вашего набора тестов .
- (Только LinuxOS ) освободите и освободите неиспользуемую/кэшированную память в Ubuntu/Linux Mint до и после выполнения Вашего набора тестов .
- Если ваша базовая версия веб-клиента слишком старая, то удалите ее через Revo Uninstaller и установите последнюю версию GA и выпущенную версию веб-клиента .
- Сделайте перезагрузку системы .
- Выполните свой
@Test
как некорневой пользователь. - Всегда вызывайте
driver.quit()
в рамкахtearDown(){}
для изящного закрытия и уничтожения экземпляров WebDriver и Web-клиента.
Ссылка
Вы можете найти соответствующее подробное обсуждение в разделе:




headless chrome=75.0.3770.90
подразумевает версию браузера chrome. Тогда Driver info: driver.version: unknown
в какой-то момент версия chromedriver не была обнаружена.


chrome=75.0.3770.90
75.0.3770.90 и не может быть версией chromedriver.