package com.blackboard.testing.driver; import com.codeborne.selenide.webdriver.WebDriverFactory; import org.openqa.selenium.Proxy; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; public class LambdaWebDriverFactory extends WebDriverFactory { public LambdaWebDriverFactory() { System.setProperty("webdriver.chrome.driver", getLibLocation("chromedriver")); } private ChromeOptions getLambdaChromeOptions() { ChromeOptions options = new ChromeOptions(); options.setBinary(getLibLocation("chrome")); options.addArguments("--disable-gpu"); options.addArguments("--headless"); options.addArguments("--window-size=1366,768"); options.addArguments("--single-process"); options.addArguments("--no-sandbox"); options.addArguments("--user-data-dir=/tmp/user-data"); options.addArguments("--data-path=/tmp/data-path"); options.addArguments("--homedir=/tmp"); options.addArguments("--disk-cache-dir=/tmp/cache-dir"); return options; } private String getLibLocation(String lib) { return String.format("%s/lib/%s", System.getenv("LAMBDA_TASK_ROOT"), lib); } @Override public WebDriver createWebDriver(Proxy proxy) { return new ChromeDriver(getLambdaChromeOptions()); } }