On 17/06/16 10:41, Elliot Smith wrote:
The Firefox 47 WebDriver requires a download of a separate binary
and an additional capability to be defined on the driver.

Modify our tests so that when Firefox 47 is set as the browser
for the tests, this capability is defined. Also add a note to the
README about the additional installation steps required.

Signed-off-by: Elliot Smith <[email protected]>
---
  bitbake/lib/toaster/tests/browser/README              | 9 ++++++++-
  bitbake/lib/toaster/tests/browser/selenium_helpers.py | 5 ++++-
  2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/bitbake/lib/toaster/tests/browser/README 
b/bitbake/lib/toaster/tests/browser/README
index f57154e..43e14c5 100644
--- a/bitbake/lib/toaster/tests/browser/README
+++ b/bitbake/lib/toaster/tests/browser/README
@@ -24,7 +24,14 @@ 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:
+
+* Firefox versions 46 or earlier should work without requiring additional
+software to be installed.
+* Firefox version 47 requires manual installation of the Marionette driver;
+see https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver.
+Ensure that the Marionette executable (wires on Linux, wires.exe on Windows)
+is on your PATH.
The test case will instantiate a Selenium driver set by the
  TOASTER_TESTS_BROWSER environment variable, or Chrome if this is not 
specified.
diff --git a/bitbake/lib/toaster/tests/browser/selenium_helpers.py 
b/bitbake/lib/toaster/tests/browser/selenium_helpers.py
index 54db2e8..f3bb1a3 100644
--- a/bitbake/lib/toaster/tests/browser/selenium_helpers.py
+++ b/bitbake/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
@@ -48,7 +49,9 @@ def create_selenium_driver(browser='chrome'):
              service_args=["--verbose", "--log-path=selenium.log"]
          )
      elif browser == 'firefox':
-        return webdriver.Firefox()
+        capabilities = DesiredCapabilities.FIREFOX
+        capabilities['marionette'] = True
+        return webdriver.Firefox(capabilities=capabilities)

This will force the use of the marionette/geckodriver/wires for all versions of firefox (apparently it works with v45 onwards) too so, either we need to switch those capabilities depending on the version of firefox we find or we will need to clarify that you'll always need this external driver.


      elif browser == 'ie':
          return webdriver.Ie()
      elif browser == 'phantomjs':

--
_______________________________________________
toaster mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/toaster

Reply via email to