aws lambda函数chromedriver不可执行

时间:2017-08-31 19:43:34

标签: spring amazon-web-services selenium aws-lambda selenium-chromedriver

我一直坚持这个错误"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文件,但没有成功。

1 个答案:

答案 0 :(得分:0)

Lambda的限制为300秒,内存限制为1536MB。

尝试在lambda函数中启动chromedriver是一种非常糟糕的方法。您应该做的是设置Selenium网格,然后使用RemoteWebDriver在远程计算机中启动Chrome浏览器