Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update UI codebase to support geckodriver and latest Firefox versions #4494

Closed
oshtaier opened this issue Mar 24, 2017 · 3 comments
Closed
Labels
blocked This cannot proceed because of an external reason enhancement An addition to the robottelo framework UI Issues and PRs involving the UI

Comments

@oshtaier
Copy link
Contributor

Starting from Firefox 48, Selenium-Webdriver is not supported as native driver. All attempts to add such support seems as not reliable and it becomes must have approach to move to geckodriver in order running any UI scripts on Firefox browser:
SeleniumHQ/selenium#2559
SeleniumHQ/selenium#2942

To run tests using geckodriver next steps needs to be performed:

  1. Download and put latest geckodriver version into $PATH
    https://github.com/mozilla/geckodriver/releases
  2. Install latest Firefox browser version
    https://www.mozilla.org/en-US/firefox/new

Blocking issues at that moment:

  1. Actions are not implemented, so it is not possible to work with ActionsChain class:
    Actions are not implemented mozilla/geckodriver#233
    However there is issue that is closed and functionality has to work:
    Mouse Over goes in error with Marionette webdriver SeleniumHQ/selenium#2285
    but after some testing procedures and trying different alternatives, still stuck with that. Code is actually present in selenium, but doesn't seem to perform real mouse hover event
@oshtaier oshtaier added blocked This cannot proceed because of an external reason enhancement An addition to the robottelo framework UI Issues and PRs involving the UI labels Mar 24, 2017
@oshtaier oshtaier changed the title Migrate UI codebase to support geckodriver and latest Firefox versions Update UI codebase to support geckodriver and latest Firefox versions Mar 24, 2017
@oshtaier
Copy link
Contributor Author

oshtaier commented Apr 12, 2017

Update

Firefox 53 Beta 10:
At least due to webcompat/web-bugs#5601 all execution procedures are blocked

Firefox 52.0.2 + Selenium 3.3.3+Geckodriver 0.15:

Summary/Analysis:

  1. Issue with Actions Chains described above (https://bugzilla.mozilla.org/show_bug.cgi?id=1292178) seems partially fixed and integrated into Geckodriver/Marionette. We can select organization from context sub-menu, but further execution seems hung up (https://bugzilla.mozilla.org/show_bug.cgi?id=1345653). Needs to re-test on stable Firefox 53.
  2. Increased amount of StaleElementReferenceException that require to make revision of wait_for_ajax method.
  3. (Blocker) Fundamental interaction between browser and Selenium seems broken as execution procedure can go too fast skipping intermediate actions that consequently get us to failure. Probably some revisions of generic waiter approach can help us. Step-by-step debug execution seems much more stable than direct run.
  4. Unexpected interactions with menu dropdowns can be also a reason for skipping intermediate actions. Seems as Selenium like to emulate real user actions even more natural than needed
  5. (Blocker) Sometimes run process just randomly hung without any specific reason in completely different places
  6. Development processes for Firefox and Geckodriver are very intensive, so we have to move from one stable set of requirements to another and never put 'latest' versions

Risks:

  • Geckodriver/Marionette is basically a black box, so present and future issues almost automatically becomes a serious blocker for any test cases development in UI area
  • A lot of random issues can happen which is not easy to reproduce, identify and fix
  • Difference in Satellite application behavior for different browser version can add QA efforts in defect management and test automation workarounds aspects

Conclusion:

Currently observed issues are beyond our reach, so it will be fine to wait for stable release of Firefox 53/54 and try out our tests there. Because of the issue nature and lack of ways to fix them from our side, it is pretty hard to provide estimates to make our tests work fine on that phase. With each passing day we have to put less efforts due all the bugs fixed on the driver side itself

@oshtaier
Copy link
Contributor Author

oshtaier commented May 15, 2017

Update:

Firefox 53.02 + Selenium 3.4.1 + geckodriver 0.16.1

Blockers:

  • Randomly entire execution procedure hung up. There are some common patterns, but still not easy to narrow root cause
  • Unexpected interactions with menu dropdowns can be a reason for skipping intermediate actions. Seems that mouse cursor is now physically move to each browser element before perform actual action

Anyway, we can see great improvement in all directions to support newest Firefox browsers, so we able to run one basic module completely:

nosetests tests/foreman/ui/test_architecture.py
......
----------------------------------------------------------------------
Ran 6 tests in 470.450s

OK

Conclusion:
We can start investigation procedures and try to fix existing issues in case necessary priority will be provided for that task

@ntkathole
Copy link
Contributor

Please feel free to re-open, if this still needs fixing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked This cannot proceed because of an external reason enhancement An addition to the robottelo framework UI Issues and PRs involving the UI
Projects
None yet
Development

No branches or pull requests

2 participants