我一直被这个错误困扰 "Caused by: java.lang.IllegalStateException: The driver is not executable: /var/task/chromedriver"
当我将我的 jar 项目部署到 aws lambda 函数中时。该项目在我的本地机器上运行良好,但由于某种原因,aws 似乎无法执行 chromedriver。
我的 chromedriver 文件放在资源文件夹中。
以下是我的测试配置文件:
@Configuration
public class TestConfig {
private static final Logger l = LoggerFactory.getLogger(TestConfig.class);
private String chromeDriver = org.apache.commons.lang.SystemUtils.IS_OS_WINDOWS ? "chromedriver.exe" : "chromedriver" ;
public WebDriver getDriver(){
URL resource = getClass().getClassLoader().getResource(chromeDriver);
String chromePath = null;
try {
chromePath = Paths.get(resource.toURI()).toString();
} catch (URISyntaxException e) {
l.info("cannot find chromedriver in resources");
}
System.setProperty("webdriver.chrome.driver", chromePath);
return new ChromeDriver();
}
}
我有 chromedriver 和 chromedriver.exe,我尝试 chmod 777 文件,但没有成功。
最佳答案
Lambda 的限制为 300 秒,内存限制为 1536MB。
尝试在 lambda 函数中启动 chromedriver 是一种非常糟糕的方法。您应该做的是设置 Selenium 网格,然后使用 RemoteWebDriver 在远程机器上启动 Chrome 浏览器
关于spring - aws lambda 函数 chromedriver 不可执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45988993/