[bitbake-devel] [PATCH 2/2] toaster-tests: define capabilities for latest Firefox driver
Michael Wood
michael.g.wood at intel.com
Wed Jul 20 15:55:26 UTC 2016
On 17/06/16 18:52, Michael Wood wrote:
> From: Elliot Smith <elliot.smith at intel.com>
>
> For the latest Firefox versions, WebDriver requires a download of a
> separate binary and an additional capability to be defined on it.
>
> Modify our tests so that when "marionette" is set as the browser,
> this capability is defined on the Firefox driver. Also add a note to the
> README about the additional installation steps required.
>
> Signed-off-by: Elliot Smith <elliot.smith at intel.com>
> Signed-off-by: Michael Wood <michael.g.wood at intel.com>
> ---
> lib/toaster/tests/browser/README | 19 +++++++++++++++++--
> lib/toaster/tests/browser/selenium_helpers.py | 5 +++++
> 2 files changed, 22 insertions(+), 2 deletions(-)
>
> diff --git a/lib/toaster/tests/browser/README b/lib/toaster/tests/browser/README
> index f57154e..969f06c 100644
> --- a/lib/toaster/tests/browser/README
> +++ b/lib/toaster/tests/browser/README
> @@ -24,15 +24,30 @@ To run tests against PhantomJS (headless):
> * On *nix systems, put phantomjs on PATH
> * Not tested on Windows
>
> -Firefox should work without requiring additional software to be installed.
> +To run tests against Firefox, you may need to install the Marionette driver,
> +depending on how new your version of Firefox is. One clue that you need to do
> +this is if you see an exception like:
>
> -The test case will instantiate a Selenium driver set by the
> + selenium.common.exceptions.WebDriverException: Message: The browser
> + appears to have exited before we could connect. If you specified
> + a log_file in the FirefoxBinary constructor, check it for details.
> +
> +See https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver
> +for installation instructions. Ensure that the Marionette executable (renamed
> +as wires on Linux or wires.exe on Windows) is on your PATH; and use "marionette"
> +as the browser string passed via TOASTER_TESTS_BROWSER (see below).
> +
> +(Note: The Toaster tests have been checked against Firefox 47 with the
> +Marionette driver.)
> +
> +The test cases will instantiate a Selenium driver set by the
> TOASTER_TESTS_BROWSER environment variable, or Chrome if this is not specified.
>
> Available drivers:
>
> * chrome (default)
> * firefox
> +* marionette (for newer Firefoxes)
> * ie
> * phantomjs
>
> diff --git a/lib/toaster/tests/browser/selenium_helpers.py b/lib/toaster/tests/browser/selenium_helpers.py
> index 54db2e8..000937f 100644
> --- a/lib/toaster/tests/browser/selenium_helpers.py
> +++ b/lib/toaster/tests/browser/selenium_helpers.py
> @@ -34,6 +34,7 @@ import time
> from django.contrib.staticfiles.testing import StaticLiveServerTestCase
> from selenium import webdriver
> from selenium.webdriver.support.ui import WebDriverWait
> +from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
> from selenium.common.exceptions import NoSuchElementException, \
> StaleElementReferenceException, TimeoutException
>
> @@ -49,6 +50,10 @@ def create_selenium_driver(browser='chrome'):
> )
> elif browser == 'firefox':
> return webdriver.Firefox()
> + elif browser == 'marionette':
> + capabilities = DesiredCapabilities.FIREFOX
> + capabilities['marionette'] = True
> + return webdriver.Firefox(capabilities=capabilities)
> elif browser == 'ie':
> return webdriver.Ie()
> elif browser == 'phantomjs':
Ping on these two patches.
Thanks,
Michael
More information about the bitbake-devel
mailing list