What is a good headless browser to run with protractor?

前端 未结 5 973
一整个雨季
一整个雨季 2020-12-30 04:31

New User here.

After hours of building my smoke and regression tests, I found out after reading many cases online that phantomjs is known to be a trouble to run with

相关标签:
5条回答
  • 2020-12-30 04:46

    Your best bet is to continue with Chrome. With a bit of work you can get it to work via a CI and in a headless manner - we do this using Jenkins and Docker Ubuntu servers which are headless.

    You will need to configure Chrome to run headless using XVFB. You can start off by following the gist here https://gist.github.com/addyosmani/5336747

    You state you are on a Mac so you can either run the headless tests via Docker on your machine or you could set up a second config for the CI tests.

    Another resource http://tobyho.com/2015/01/09/headless-browser-testing-xvfb/

    0 讨论(0)
  • 2020-12-30 04:46

    I would continue testing in normal browsers with a head, but would use a remote selenium server as a service - Sauce Labs or BrowserStack, see:

    • Integration Testing with Protractor, WebdriverJS and Sauce Labs
    • Running Protractor tests on Browserstack Automate
    • automate-node-samples
    0 讨论(0)
  • 2020-12-30 04:50

    If you've got Chrome 59+ installed, start Chrome with the following flag:

    --headless
    

    please let me know if you need more help, will write the config for you :) enjoy

    0 讨论(0)
  • 2020-12-30 05:03

    If anyone reached here - the answers are outdated. Chromium (on next release) now supports headless mode. no need to work hard.

    You can read more here:

    https://developers.google.com/web/updates/2017/04/headless-chrome

    Here is an example from command line

    chrome \
     --headless \                   # Runs Chrome in headless mode.
     --disable-gpu \                # Temporarily needed for now.
     --remote-debugging-port=9222 \
     https://www.chromestatus.com   # URL to open. Defaults to about:blank.
    

    And you can simply trigger protractor with capabilities for chrome:

    Activating chrome language flags when activating from protractor (selenium)

    Here is the configuraiton I am using

     capabilities: {
        'browserName': browserName,
        chromeOptions: {
          binary: '/Users/guymograbi/Downloads/chrome-mac/Chromium.app/Contents/MacOS/Chromium',
          args: ['--headless','--disable-gpu']
        }
      },
    

    Update - new versions of chrome doesn't require binary property

    In my environments I found I can remove the binary property as new version of chrome is available on stable branches

    My protractor configuration is

    capabilities: {
        'browserName': 'chrome',
        chromeOptions: {
          args: [ '--headless', '--disable-gpu', '--no-sandbox', '--window-size=1920x1200' ]
        },
    
      },
    

    And it works smoothly for weeks now. highly recommended.

    Update - how to do this in karma is super easy

    Using headless chrome in karma is super easy:

     browsers: 'ChromeHeadless'
    

    it should work with the chrome loader and everything. more info

    0 讨论(0)
  • 2020-12-30 05:06

    You could run your Protractor tests against CodeShip or Drone.io, both of which offer Chrome and/or Firefox running headless for free. No really...

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