[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