diff --git a/.travis.yml b/.travis.yml index 5e2219c..0e16008 100644 --- a/.travis.yml +++ b/.travis.yml @@ -56,8 +56,9 @@ jobs: - /usr/lib/chromium-browser/chromedriver --version - chmod +x .travis/start_vfb.sh && .travis/start_vfb.sh - npm run test:server & - # work around for https://bugs.launchpad.net/ubuntu/+source/chromium-browser/+bug/1718885 - - LD_LIBRARY_PATH=/usr/lib/chromium-browser /usr/lib/chromium-browser/chromedriver --verbose --port=9515 "--log-path=$HOME/chromedriver.log" & + # # work around for https://bugs.launchpad.net/ubuntu/+source/chromium-browser/+bug/1718885 + # - LD_LIBRARY_PATH=/usr/lib/chromium-browser /usr/lib/chromium-browser/chromedriver --verbose --port=9515 "--log-path=$HOME/chromedriver.log" & + - /usr/lib/chromium-browser/chromedriver --verbose --port=9515 "--log-path=$HOME/chromedriver.log" & script: npm run test:integration:webdriver after_script: - echo 'travis_fold:start:chromedriver.log'; cat ~/chromedriver.log; echo travis_fold:end:chromedriver.log diff --git a/test/integration/environments/webdriver.js b/test/integration/environments/webdriver.js index 7e8e398..53b645e 100644 --- a/test/integration/environments/webdriver.js +++ b/test/integration/environments/webdriver.js @@ -1,6 +1,6 @@ 'use strict'; /* eslint-env node */ - +const Promise = require('bluebird'); const wd = require('wd'); const bluefoxStringified = require('../../../standalone.string.js'); @@ -63,6 +63,16 @@ global.BLUEFOX_TEST_ENV = { browserActive = true; await browser.setAsyncScriptTimeout(30000); await browser.get(`http://127.0.0.1:8123/${path}`); + for (let delay = 0; delay <= 250; delay += 10) { + // workaround for chrome bug introduced in recent versions (somewhere around v64) + // in old versions of chrome pageLoadStrategy:'none' would still wait for the actual navigation + // but now browser.get() resolves too early sometimes + const location = await browser.url(); + if (!/^data:/.test(location)) { + break; + } + await Promise.delay(delay); + } await browser.execute(bluefoxStringified); await browser.execute(` (() => {