-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
Allow functional test automation on Firefox 47+ #7452
Comments
This issue isn't a "problem" with any browser, nor Kibana. In FF 47, Mozilla updated Firefox to the updated WebDriver Spec for certain endpoints. If you run the tests, as is on FF, you will notice that you get a "Command Not Found" error when trying to run There is another issue when typing into elements. The parameter name has changed from These issues being solved should get the tests up and running but I am now bumping into Firefox Specific issues that will need to be addressed for the tests to work on FF. |
Issue 1: Using the roughly tilde when selecting
|
Issue 2: Using Leadfoots findDisplayedBy* calls does not work in Firefox. Rather, it's findBy* that works. According to LeadFoot docs, the findDisplayedBy* calls should only be used as a last resort as they are inherently slower. I haven't found the root cause as to why they don't work in FF, but FF never finds the element when this is used. |
These changes cannot be made with a simple string replace as they break existing tests on Chrome (I tried). Rather, we need to dig into test cases to find out why these mechanisms were chosen. Likely, each was chosen for a specific case. We will then need to test if that case is also true on FF and then move forward with a solution. This has gotten much larger than just making some updates to Leadfoot. |
One thought, go ahead and replace all the Another thought is if we could do something like @epixa proposed for the new platform and segregate (maybe in config.js, or two different config files) the tests (test suites) that would pass on both browsers from the tests that only pass on Chrome. Then as we fix tests to work on both we move them to that config/group. This method could actually be merged as long as Jenkins kept running only the full set of Chrome tests until all tests were supported on Firefox. But the problem I think is not really the tests but the page objects with selectors. I can't think of any easy way to fork those into an old (Chrome only) and new (Chrome and Firefox) set and use the correct ones in tests. Maybe this just takes us back to a PR branch. |
Hi Lee, I agree with the statement that it would be difficult (if not impossible) to fork the page objects in an efficient way. I will go ahead with the PR. I will use this issue as meta to report errors in the different apps as they show up. |
Gonna be adding test failures here. We can check them off as they are fixed. Chrome
Firefox
|
Of course, since our tests build upon each other, I can't check subsequent tests once a failure is found. |
@LeeDr Assessment done. This is where we're at right now with FF and Chrome. Many of FF tests don't even get to start because of a failure in the before all hook. |
/cc @LeeDr Update. Fixed issue with clicking kibana indices. Our main issues now reside around Leadfoot's not updating the |
Commited patch for the Leadfoot issue |
Updated which tests are failing. We have over 50% of our tests passing now. I believe the rest are just tweaking selectors to work on both browsers. |
Closing in favor of #19010 |
`v91.3.1`⏩`v92.0.0-backport.0` --- ## [`v92.0.0-backport.0`](https://github.com/elastic/eui/releases/v92.0.0-backport.0) **This is a backport release only intended for use by Kibana.** **Bug fixes** - Fixed an `EuiTreeView` JSX Typescript error ([#7452](elastic/eui#7452)) - Fixed a color console warning being generated by disabled `EuiStep`s ([#7454](elastic/eui#7454)) ## [`v92.0.0`](https://github.com/elastic/eui/releases/v92.0.0) - Updated generic types of `EuiBasicTable`, `EuiInMemoryTable` and `EuiSearchBar.Query.execute` to add `extends object` constraint ([#7340](elastic/eui#7340)) - This change should have no impact on your applications since the updated types only affect properties that exclusively accept object values. - Added a new `EuiFlyoutResizable` component ([#7439](elastic/eui#7439)) - Updated `EuiTextArea` to accept `isClearable` and `icon` as props ([#7449](elastic/eui#7449)) **Bug fixes** - `EuiRange`/`EuiDualRange`'s track ticks & highlights now update their positions on resize ([#7442](elastic/eui#7442)) **Deprecations** - Updated `EuiFilterButton` to remove the second `.euiFilterButton__textShift` span wrapper. Target `.euiFilterButton__text` instead ([#7444](elastic/eui#7444)) **Breaking changes** - Removed deprecated `EuiNotificationEvent`. We recommend copying the component to your application if necessary ([#7434](elastic/eui#7434)) - Removed deprecated `EuiControlBar`. We recommend using `EuiBottomBar` instead ([#7435](elastic/eui#7435))
`v91.3.1`⏩`v92.0.0-backport.0` --- ## [`v92.0.0-backport.0`](https://github.com/elastic/eui/releases/v92.0.0-backport.0) **This is a backport release only intended for use by Kibana.** **Bug fixes** - Fixed an `EuiTreeView` JSX Typescript error ([elastic#7452](elastic/eui#7452)) - Fixed a color console warning being generated by disabled `EuiStep`s ([elastic#7454](elastic/eui#7454)) ## [`v92.0.0`](https://github.com/elastic/eui/releases/v92.0.0) - Updated generic types of `EuiBasicTable`, `EuiInMemoryTable` and `EuiSearchBar.Query.execute` to add `extends object` constraint ([elastic#7340](elastic/eui#7340)) - This change should have no impact on your applications since the updated types only affect properties that exclusively accept object values. - Added a new `EuiFlyoutResizable` component ([elastic#7439](elastic/eui#7439)) - Updated `EuiTextArea` to accept `isClearable` and `icon` as props ([elastic#7449](elastic/eui#7449)) **Bug fixes** - `EuiRange`/`EuiDualRange`'s track ticks & highlights now update their positions on resize ([elastic#7442](elastic/eui#7442)) **Deprecations** - Updated `EuiFilterButton` to remove the second `.euiFilterButton__textShift` span wrapper. Target `.euiFilterButton__text` instead ([elastic#7444](elastic/eui#7444)) **Breaking changes** - Removed deprecated `EuiNotificationEvent`. We recommend copying the component to your application if necessary ([elastic#7434](elastic/eui#7434)) - Removed deprecated `EuiControlBar`. We recommend using `EuiBottomBar` instead ([elastic#7435](elastic/eui#7435))
`v92.0.0-backport.0`⏩ `v92.1.1` --- ## [`v92.1.1`](https://github.com/elastic/eui/releases/v92.1.1) **Bug fixes** - Minor `EuiDataGrid` cell performance fixes ([#7465](elastic/eui#7465)) ## [`v92.1.0`](https://github.com/elastic/eui/releases/v92.1.0) - Updated `EuiResizableButton` to allow customizing the `indicator` style with either `handle` (default) or `border` ([#7455](elastic/eui#7455)) - Enhanced `EuiResizableContainer` to preserve the drag/resize event when the user's mouse leaves the parent container and re-enters ([#7456](elastic/eui#7456)) **Bug fixes** - Fixed an `EuiTreeView` JSX Typescript error ([#7452](elastic/eui#7452)) - Fixed a color console warning being generated by disabled `EuiStep`s ([#7454](elastic/eui#7454)) **Accessibility** - `EuiDataGrid`'s keyboard/screenreader experience has been tweaked to be more consistent for varying complex data: ([#7448](elastic/eui#7448)) - Headers are now always navigable by arrow key, regardless of whether the header cells contain interactive content - Non-expandable cells containing any amount of interactive content now must be entered via Enter or F2 keypress - Expandable cells continue to be toggled via Enter or F2 keypress - `EuiDataGrid` now provides a direct screen reader hint for Enter key behavior for expandable & interactive cells ([#7448](elastic/eui#7448))
`v92.0.0-backport.0`⏩ `v92.1.1` --- ## [`v92.1.1`](https://github.com/elastic/eui/releases/v92.1.1) **Bug fixes** - Minor `EuiDataGrid` cell performance fixes ([elastic#7465](elastic/eui#7465)) ## [`v92.1.0`](https://github.com/elastic/eui/releases/v92.1.0) - Updated `EuiResizableButton` to allow customizing the `indicator` style with either `handle` (default) or `border` ([elastic#7455](elastic/eui#7455)) - Enhanced `EuiResizableContainer` to preserve the drag/resize event when the user's mouse leaves the parent container and re-enters ([elastic#7456](elastic/eui#7456)) **Bug fixes** - Fixed an `EuiTreeView` JSX Typescript error ([elastic#7452](elastic/eui#7452)) - Fixed a color console warning being generated by disabled `EuiStep`s ([elastic#7454](elastic/eui#7454)) **Accessibility** - `EuiDataGrid`'s keyboard/screenreader experience has been tweaked to be more consistent for varying complex data: ([elastic#7448](elastic/eui#7448)) - Headers are now always navigable by arrow key, regardless of whether the header cells contain interactive content - Non-expandable cells containing any amount of interactive content now must be entered via Enter or F2 keypress - Expandable cells continue to be toggled via Enter or F2 keypress - `EuiDataGrid` now provides a direct screen reader hint for Enter key behavior for expandable & interactive cells ([elastic#7448](elastic/eui#7448))
Kibana version: any
OS version: any
Original install method (e.g. download page, yum, from source, etc.): any
Description of the problem including expected versus actual behavior: With Firefox 47 released June 7, 2016, the selenium standalone server no longer works. To run the automation against Firefox 47+ we'll need to run a Marionette server.
See https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver
Steps to reproduce:
npm run test:ui
)Errors in browser console (if relevant):
Provide logs and/or server output (if relevant):
This PR is switching the functional test automation to use Chrome browser; #7442
So we shouldn't be blocked from running the tests, but ideally we could run the automation on multiple browsers.
The text was updated successfully, but these errors were encountered: