I am trying to run headless Firefox on AWS Codebuild linux. I am using selenium 3.6, gecko-driver 0.21.0, Firefox version 61.0.2. When I run the tests locally everything works fine, when I run it on Codebuild I get an error. The error on line 126 is when I am trying to click on an element. My code:
public static WebDriver getFirefoxHeadless(Map map) throws IOException {
System.setProperty("webdriver.gecko.driver","/root/firefox_driver/geckodriver");
DesiredCapabilities capabilities =
DesiredCapabilities.firefox();
FirefoxOptions options = new FirefoxOptions();
options.setHeadless(true);
GeckoDriverService service;
GeckoDriverService.Builder builder = new
GeckoDriverService.Builder();
service = builder.usingAnyFreePort()
.withEnvironment(map)
.build();
service.start();
options.merge(capabilities);
return new FirefoxDriver(service, options);
}
@BeforeTest
public void setUp() throws IOException, InterruptedException {
driver = Helpers.getFirefoxHeadless(MozLog.getMozLogMap());
driver.manage().window().setSize(new Dimension(1920, 1080));
driver.get(getUrl());
Thread.sleep(4000);
}
@Test
public void clickoutTestFirefox() throws IOException, InterruptedException, SQLException {
driver.findElement(By.cssSelector(".popup-close-button-slim")).click();
I get the following error on Codebuild run:
com.clickout.apitesting.waUITest.E2ECNTestFirefox.clickoutTestFirefox FAILED org.openqa.selenium.WebDriverException: Failed to decode response from marionette Build info: version: '3.13.0', revision: '2f0d292', time: '2018-06-25T15:24:21.231Z' System info: host: 'ip-172-32-0-217.eu-west-1.compute.internal', ip: '172.32.0.217', os.name: 'Linux', os.arch: 'amd64', os.version: '4.14.59-64.43.amzn1.x86_64', java.version: '1.8.0_171' Driver info: org.openqa.selenium.firefox.FirefoxDriver Capabilities {acceptInsecureCerts: true, browserName: firefox, browserVersion: 62.0, javascriptEnabled: true, moz:accessibilityChecks: false, moz:headless: true, moz:processID: 2393, moz:profile: /tmp/rust_mozprofile.AD0yj8..., moz:useNonSpecCompliantPointerOrigin: false, moz:webdriverClick: true, pageLoadStrategy: normal, platform: LINUX, platformName: LINUX, platformVersion: 4.14.59-64.43.amzn1.x86_64, rotatable: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}} Session ID: f0ea1950-77fe-463b-a8a1-e0dc5458800f *** Element info: {Using=css selector, value=.popup-close-button-slim} at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187) at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:122) at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49) at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158) at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:548) at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:322) at org.openqa.selenium.remote.RemoteWebDriver.findElementByCssSelector(RemoteWebDriver.java:416) at org.openqa.selenium.By$ByCssSelector.findElement(By.java:431) at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:314) at com.clickout.apitesting.waUITest.E2ECNTestFirefox.clickoutTestFirefox(E2ECNTestFirefox.java:126)