Сумерки с Селеном не работают с Ларадоком - PullRequest
1 голос
/ 12 января 2020

Я запускаю Dusk для тестирования моего Laravel приложения. Я недавно переключился на Laradock, что заняло некоторое время, чтобы все это настроить, так как у меня мало опыта с Docker, но теперь все работает. За исключением того, что Selenium, похоже, не работает должным образом.

Я запускаю и открываю свое рабочее пространство так:

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

I сделайте снимок экрана с ошибочным тестом, показывающим сайт и элемент, который он не может найти. До того, как я перешел на Laradock, все работало нормально, поэтому проблемы, похоже, с Selenium. Моя установка выглядит следующим образом, и я использую 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
        );
    }

1 Ответ

1 голос
/ 12 января 2020

Это сообщение об ошибке ...

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 было вызвано во время выполнения вашей программы.


Немного информация о вашей тестовой конфигурации interms of chromedriver версия помогла бы нам лучше отладить вашу проблему. Однако вам нужно позаботиться о нескольких вещах:


Ссылка

Соответствующее подробное обсуждение можно найти в:

...