* [PATCH 1/2] toaster-tests: remove click on disabled element in test @ 2016-06-17 17:52 Michael Wood 2016-06-17 17:52 ` [PATCH 2/2] toaster-tests: define capabilities for latest Firefox driver Michael Wood 0 siblings, 1 reply; 8+ messages in thread From: Michael Wood @ 2016-06-17 17:52 UTC (permalink / raw) To: bitbake-devel From: Elliot Smith <elliot.smith@intel.com> On Firefox 47, attempting to click on the "Submit" button in the test which attempts to create a project with a duplicate name fails, as the button is not enabled if the name is a duplicate. This also causes the test to fail. Remove the call to the click() method which causes the test to fail. Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Michael Wood <michael.g.wood@intel.com> --- lib/toaster/tests/browser/test_new_project_page.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/lib/toaster/tests/browser/test_new_project_page.py b/lib/toaster/tests/browser/test_new_project_page.py index 1b038ac..180a690 100644 --- a/lib/toaster/tests/browser/test_new_project_page.py +++ b/lib/toaster/tests/browser/test_new_project_page.py @@ -80,7 +80,7 @@ class TestNewProjectPage(SeleniumTestCase): """ Should not be able to create a new project whose name is the same as an existing project - """ + """ project_name = "dupproject" @@ -100,10 +100,6 @@ class TestNewProjectPage(SeleniumTestCase): self.assertTrue(("Project names must be unique" in element.text), "Did not find unique project name error message") - # Try and click it anyway, if it submits we'll have a new project in - # the db and assert then - self.click("#create-project-button") - self.assertTrue( (Project.objects.filter(name=project_name).count() == 1), - "New project not found in database") + "New project not found in database") \ No newline at end of file -- 2.7.4 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/2] toaster-tests: define capabilities for latest Firefox driver 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 2016-07-20 15:55 ` Michael Wood 0 siblings, 1 reply; 8+ messages in thread From: Michael Wood @ 2016-06-17 17:52 UTC (permalink / raw) To: bitbake-devel 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 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] toaster-tests: define capabilities for latest Firefox driver 2016-06-17 17:52 ` [PATCH 2/2] toaster-tests: define capabilities for latest Firefox driver Michael Wood @ 2016-07-20 15:55 ` Michael Wood 2016-07-21 9:20 ` Smith, Elliot 0 siblings, 1 reply; 8+ messages in thread From: Michael Wood @ 2016-07-20 15:55 UTC (permalink / raw) To: bitbake-devel On 17/06/16 18:52, Michael Wood wrote: > 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': Ping on these two patches. Thanks, Michael ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] toaster-tests: define capabilities for latest Firefox driver 2016-07-20 15:55 ` Michael Wood @ 2016-07-21 9:20 ` Smith, Elliot 0 siblings, 0 replies; 8+ messages in thread From: Smith, Elliot @ 2016-07-21 9:20 UTC (permalink / raw) To: Michael Wood; +Cc: bitbake-devel [-- Attachment #1: Type: text/plain, Size: 4516 bytes --] On 20 July 2016 at 16:55, Michael Wood <michael.g.wood@intel.com> wrote: > On 17/06/16 18:52, Michael Wood wrote: > >> 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. >> > Note that I resubmitted a rebased version of these patches, as changes on toaster-next mean that this version won't apply. Elliot > >> 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': >> > > Ping on these two patches. > > Thanks, > > Michael > > --------------------------------------------------------------------- > Intel Corporation (UK) Limited > Registered No. 1134945 (England) > Registered Office: Pipers Way, Swindon SN3 1RJ > VAT No: 860 2173 47 > > This e-mail and any attachments may contain confidential material for > the sole use of the intended recipient(s). Any review or distribution > by others is strictly prohibited. If you are not the intended > recipient, please contact the sender and delete all copies. > > -- Elliot Smith Software Engineer Intel Open Source Technology Centre [-- Attachment #2: Type: text/html, Size: 6027 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 1/2] toaster-tests: remove click on disabled element in test @ 2016-06-17 9:41 Elliot Smith 2016-06-17 9:41 ` [PATCH 2/2] toaster-tests: define capabilities for latest Firefox driver Elliot Smith 0 siblings, 1 reply; 8+ messages in thread From: Elliot Smith @ 2016-06-17 9:41 UTC (permalink / raw) To: toaster On Firefox 47, attempting to click on the "Submit" button in the test which attempts to create a project with a duplicate name fails, as the button is not enabled if the name is a duplicate. This also causes the test to fail. Remove the call to the click() method which causes the test to fail. Signed-off-by: Elliot Smith <elliot.smith@intel.com> --- bitbake/lib/toaster/tests/browser/test_new_project_page.py | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/bitbake/lib/toaster/tests/browser/test_new_project_page.py b/bitbake/lib/toaster/tests/browser/test_new_project_page.py index 1b038ac..180a690 100644 --- a/bitbake/lib/toaster/tests/browser/test_new_project_page.py +++ b/bitbake/lib/toaster/tests/browser/test_new_project_page.py @@ -80,7 +80,7 @@ class TestNewProjectPage(SeleniumTestCase): """ Should not be able to create a new project whose name is the same as an existing project - """ + """ project_name = "dupproject" @@ -100,10 +100,6 @@ class TestNewProjectPage(SeleniumTestCase): self.assertTrue(("Project names must be unique" in element.text), "Did not find unique project name error message") - # Try and click it anyway, if it submits we'll have a new project in - # the db and assert then - self.click("#create-project-button") - self.assertTrue( (Project.objects.filter(name=project_name).count() == 1), - "New project not found in database") + "New project not found in database") \ No newline at end of file -- 2.7.4 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 2/2] toaster-tests: define capabilities for latest Firefox driver 2016-06-17 9:41 [PATCH 1/2] toaster-tests: remove click on disabled element in test Elliot Smith @ 2016-06-17 9:41 ` Elliot Smith 2016-06-17 11:16 ` Michael Wood 0 siblings, 1 reply; 8+ messages in thread From: Elliot Smith @ 2016-06-17 9:41 UTC (permalink / raw) To: toaster 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 <elliot.smith@intel.com> --- 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) elif browser == 'ie': return webdriver.Ie() elif browser == 'phantomjs': -- 2.7.4 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] toaster-tests: define capabilities for latest Firefox driver 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 0 siblings, 1 reply; 8+ messages in thread From: Michael Wood @ 2016-06-17 11:16 UTC (permalink / raw) To: toaster 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 <elliot.smith@intel.com> > --- > 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': ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] toaster-tests: define capabilities for latest Firefox driver 2016-06-17 11:16 ` Michael Wood @ 2016-06-17 13:21 ` Smith, Elliot 2016-06-17 13:39 ` Michael Wood 0 siblings, 1 reply; 8+ messages in thread From: Smith, Elliot @ 2016-06-17 13:21 UTC (permalink / raw) To: Michael Wood; +Cc: toaster [-- Attachment #1: Type: text/plain, Size: 3985 bytes --] 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 <michael.g.wood@intel.com> 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 <elliot.smith@intel.com> >> --- >> 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 > toaster@yoctoproject.org > https://lists.yoctoproject.org/listinfo/toaster > -- Elliot Smith Software Engineer Intel Open Source Technology Centre [-- Attachment #2: Type: text/html, Size: 5283 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 2/2] toaster-tests: define capabilities for latest Firefox driver 2016-06-17 13:21 ` Smith, Elliot @ 2016-06-17 13:39 ` Michael Wood 0 siblings, 0 replies; 8+ messages in thread From: Michael Wood @ 2016-06-17 13:39 UTC (permalink / raw) To: Smith, Elliot; +Cc: toaster This is the traceback with no wires executable and firefox 47 : (bothpythons) michael@orion:~/dev/yocto/poky/bitbake/lib/toaster(toaster-next %)$ TOASTER_TESTS_BROWSER=firefox ./manage.py test tests.browser --failfast Creating test database for alias 'default'... EException ignored in: <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x7f8558fb36a0>> Traceback (most recent call last): File "/home/michael/dev/yocto/poky/bothpythons/local/lib/python3.5/site-packages/selenium/webdriver/common/service.py", line 162, in __del__ self.stop() File "/home/michael/dev/yocto/poky/bothpythons/local/lib/python3.5/site-packages/selenium/webdriver/common/service.py", line 134, in stop if self.process is None: AttributeError: 'Service' object has no attribute 'process' ====================================================================== ERROR: setUpClass (tests.browser.test_all_builds_page.TestAllBuildsPage) ---------------------------------------------------------------------- Traceback (most recent call last): File "/home/michael/dev/yocto/poky/bothpythons/local/lib/python3.5/site-packages/selenium/webdriver/common/service.py", line 62, in start stdout=self.log_file, stderr=self.log_file) File "/usr/lib/python3.5/subprocess.py", line 947, in __init__ restore_signals, start_new_session) File "/usr/lib/python3.5/subprocess.py", line 1541, in _execute_child raise child_exception_type(errno_num, err_msg) FileNotFoundError: [Errno 2] No such file or directory: 'wires' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/michael/dev/yocto/poky/bitbake/lib/toaster/tests/browser/selenium_helpers.py", line 135, in setUpClass cls.driver = create_selenium_driver() File "/home/michael/dev/yocto/poky/bitbake/lib/toaster/tests/browser/selenium_helpers.py", line 54, in create_selenium_driver return webdriver.Firefox(capabilities=capabilities) File "/home/michael/dev/yocto/poky/bothpythons/local/lib/python3.5/site-packages/selenium/webdriver/firefox/webdriver.py", line 66, in __init__ self.service.start() File "/home/michael/dev/yocto/poky/bothpythons/local/lib/python3.5/site-packages/selenium/webdriver/common/service.py", line 69, in start os.path.basename(self.path), self.start_error_message) selenium.common.exceptions.WebDriverException: Message: 'wires' executable needs to be in PATH. Michael On 17/06/16 14:21, Smith, Elliot wrote: > 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 <michael.g.wood@intel.com > <mailto:michael.g.wood@intel.com>> 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 <elliot.smith@intel.com > <mailto:elliot.smith@intel.com>> > --- > 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 > toaster@yoctoproject.org <mailto:toaster@yoctoproject.org> > https://lists.yoctoproject.org/listinfo/toaster > > > > > -- > Elliot Smith > Software Engineer > Intel Open Source Technology Centre > > --------------------------------------------------------------------- > Intel Corporation (UK) Limited > Registered No. 1134945 (England) > Registered Office: Pipers Way, Swindon SN3 1RJ > VAT No: 860 2173 47 > > This e-mail and any attachments may contain confidential material for > the sole use of the intended recipient(s). Any review or distribution > by others is strictly prohibited. If you are not the intended > recipient, please contact the sender and delete all copies. > ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2016-07-21 9:20 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2016-06-17 17:52 [PATCH 1/2] toaster-tests: remove click on disabled element in test Michael Wood 2016-06-17 17:52 ` [PATCH 2/2] toaster-tests: define capabilities for latest Firefox driver Michael Wood 2016-07-20 15:55 ` 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
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.