Surely setting the capabilities to marionette=true will not make a difference with older versions of Firefox? I tried setting a spurious capability with Firefox 47 and it was just ignored; I assumed that the 'marionette' capability would equally be ignored by older Firefoxes.
I can get an older version of Firefox and test this assumption if you think it's critical. Elliot On 17 June 2016 at 12:16, Michael Wood <[email protected]> wrote: > 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 > -- Elliot Smith Software Engineer Intel Open Source Technology Centre
-- _______________________________________________ toaster mailing list [email protected] https://lists.yoctoproject.org/listinfo/toaster
