【问题标题】:How to run Google Chrome in AWS Lambda for Selenium tests using Java + ChromeDriver如何使用 Java + ChromeDriver 在 AWS Lambda 中运行 Google Chrome 进行 Selenium 测试
【发布时间】:2019-01-24 15:00:56
【问题描述】:

我使用以下版本:

  • 硒 - 3.14.0
  • Webdrivermanager - 2.2.4

要创建 ChromeDriver,我使用以下配置:

WebDriverManager.chromedriver()
            .targetPath("/tmp")
            .setup();

    ChromeOptions options = new ChromeOptions();
    options.addArguments("--headless", "--no-sandbox", "--disable-dev-shm-usage");
    options.setBinary("/tmp");

    ChromeDriver driver = new ChromeDriver(options);

当我运行我的 lambda 时,会发生以下异常(来自 lambda 日志):

org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: exited abnormally (unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /tmp is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

有没有在AWS Lambda中安装Chrome浏览器并提供给ChromeDriver的好方法?

【问题讨论】:

  • 你有没有碰巧得到这个工作?除了 C# 之外,我正在解决同样的问题。
  • @user1011627 不幸的是我还没有找到答案。

标签: java selenium aws-lambda selenium-chromedriver headless


【解决方案1】:

ChromeOptions 的方法setBinary() 应该用于设置Chrome 浏览器的路径。问题是您用于设置 WebDriverManager 下载 chromedriver (即 Selenium WebDriver 与 Chrome 通信所需的二进制文件)的路径。因此,您需要删除该行:

options.setBinary("/tmp");

【讨论】:

    猜你喜欢
    • 2020-04-10
    • 2022-11-24
    • 2016-01-14
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 2015-03-12
    • 2012-11-23
    相关资源
    最近更新 更多