【问题标题】:Dusk with Selenium not working with LaradockSelenium 的黄昏无法与 Laradock 一起使用
【发布时间】:2020-01-12 11:16:10
【问题描述】:

我正在运行 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

我得到了一张失败测试的截图,显示了网站以及它似乎无法找到的元素。在我切换到 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
        );
    }

【问题讨论】:

    标签: laravel selenium selenium-chromedriver laravel-dusk laradock


    【解决方案1】:

    此错误消息...

    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 version 方面,关于您的 Test Configuration 的一些详细信息将有助于我们以更好的方式调试您的问题。但是,您需要注意以下几点:


    参考

    您可以在以下位置找到相关的详细讨论:

    【讨论】:

    • 向您的时间和精力致敬。大多数人可能会避免这样较长的问题,而且每当有任何与硒相关的问题时,您似乎都有时间和答案。这样一位敬业的贡献者?+1
    • 确实感谢到目前为止的帮助。我不确定我是否理解您的评论“关于 chromedriver 版本的测试配置的一些细节”。错误不是显示它正在使用 75.0.3770.90 吗?正如你所说,有一个更新的版本,我现在正在尝试使用 v79。目前我拉拉多克并正在重建。我会看看这是否能解决任何问题。我了解 NoSuchElement 错误,但问题是该元素在那里。不知何故找不到。
    • @Matthieu headless chrome=75.0.3770.90 暗示 chrome Browser 版本。而 Driver info: driver.version: unknown 在某些时候未检测到 chromedriver 版本。
    • 这可能是那里未知的线索吗? Selenium Webdriver 集线器使用 chromedriverVersion 说它:“75.0.3770.90。似乎在更新到 v79 时卡住了。
    • 不,75.0.3770.90chrome=75.0.3770.90 版本,不能是chromedriver 版本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    • 2017-07-27
    • 2021-04-16
    • 2018-02-23
    • 2023-04-01
    相关资源
    最近更新 更多