我使用以下版本:
- 硒 - 3.14.0
- 网络驱动程序管理器 - 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提供它?
ChromeOptions
的方法setBinary()
应该用于设置Chrome浏览器的路径。问题是你正在使用设置Chromedriver(即Selenium WebDriver与Chrome通信所需的二进制文件(由WebDriverManager下载的路径。因此,您需要删除该行:
options.setBinary("/tmp");