All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Wood <michael.g.wood@intel.com>
To: bitbake-devel@lists.openembedded.org
Subject: [PATCH 2/2] toaster-tests: define capabilities for latest Firefox driver
Date: Fri, 17 Jun 2016 18:52:51 +0100	[thread overview]
Message-ID: <1466185971-18537-2-git-send-email-michael.g.wood@intel.com> (raw)
In-Reply-To: <1466185971-18537-1-git-send-email-michael.g.wood@intel.com>

From: Elliot Smith <elliot.smith@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@intel.com>
Signed-off-by: Michael Wood <michael.g.wood@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':
-- 
2.7.4



  reply	other threads:[~2016-06-17 17:52 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-17 17:52 [PATCH 1/2] toaster-tests: remove click on disabled element in test Michael Wood
2016-06-17 17:52 ` Michael Wood [this message]
2016-07-20 15:55   ` [PATCH 2/2] toaster-tests: define capabilities for latest Firefox driver Michael Wood
2016-07-21  9:20     ` Smith, Elliot
  -- strict thread matches above, loose matches on Subject: below --
2016-06-17  9:41 [PATCH 1/2] toaster-tests: remove click on disabled element in test Elliot Smith
2016-06-17  9:41 ` [PATCH 2/2] toaster-tests: define capabilities for latest Firefox driver Elliot Smith
2016-06-17 11:16   ` Michael Wood
2016-06-17 13:21     ` Smith, Elliot
2016-06-17 13:39       ` Michael Wood

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1466185971-18537-2-git-send-email-michael.g.wood@intel.com \
    --to=michael.g.wood@intel.com \
    --cc=bitbake-devel@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.