Running Chrome WebDriver on a linux server with no display

后端 未结 4 571
悲&欢浪女
悲&欢浪女 2020-12-07 21:12

I\'d like to run automated tests using selenium2\'s chrome webdriver on a linux server.

I\'ve already set up firefox to run on the server by using Xvfb (See http://w

相关标签:
4条回答
  • 2020-12-07 21:33

    According to SetEnvironmentProperty to ChromeDriver programatically you can do the following:

    service = new ChromeDriverService.Builder()
        .usingChromeDriverExecutable(new File("/path/to/chromedriver"))
        .usingAnyFreePort()
        .withEnvironment(ImmutableMap.of("DISPLAY",":20"))
        .build();
    

    Here is the documentation for withEnvironment

    0 讨论(0)
  • 2020-12-07 21:39

    I was facing the same challenge of setting a linux box with selenium + chromedriver, and here's my notes:

    Pre-reqs:

    1. Install JRE to run the selenium jar

    2. Install the selenium server

      grab the jar file from https://code.google.com/p/selenium/downloads/list)

    3. Install xvfb (you've seem to have already achieved this part)

    4. Install google-chrome for your linux distribution

    5. Download the chrome driver You can grab it from here: https://sites.google.com/a/chromium.org/chromedriver/downloads

    6. Install other selenium dependencies that you might need (but the above is the minimum to get chromedriver to work)

    To run:

    1. Run xvfb

    Xvfb :1 -screen 5 1024x768x8 &

    export DISPLAY=:1.5

    1. Run the selenium server jar with ChromeDriver options. It'll look something like this:

    java -jar selenium-server-standalone-2.30.0.jar -Dwebdriver.chrome.bin=/path/to/google-chrome -Dwebdriver.chrome.driver=/path/to/chromedriver

    1. The selenium server log should output something similar to this:

    Mar 19, 2013 10:07:27 AM org.openqa.grid.selenium.GridLauncher main INFO: Launching a standalone server

    Setting system property webdriver.chrome.bin to {location of google-chrome}

    Setting system property webdriver.chrome.driver to {location of chromedriver}

    10:07:34.258 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:4444/wd/hub

    10:07:34.259 INFO - Version Jetty/5.1.x 10:07:34.259 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver] ...

    Reference: http://www.yann.com/en/use-xvfb-selenium-and-chrome-to-drive-a-web-browser-in-php-23/08/2012.html

    Cheers!

    0 讨论(0)
  • 2020-12-07 21:51

    I haven't been able to find a way to do this programmatically for the ChromeDriver like you can with the FirefoxBinary.

    I've submitted a improvement request which has a patch attached to allow this. You can see it here: http://code.google.com/p/selenium/issues/detail?id=2673

    Edit: You can see below response from Stephen on how to use this now the change has been merged.: https://stackoverflow.com/a/16619608/998442

    0 讨论(0)
  • 2020-12-07 21:52

    I get what you are trying to do, but you probably just run selenium grid. It was made for automated browser testing. Works great on a server.

    https://www.selenium.dev/documentation/en/grid/

    0 讨论(0)
提交回复
热议问题