-
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
Replace Leadfoot with WebDriver API #26477
Replace Leadfoot with WebDriver API #26477
Conversation
dmlemeshko
commented
Nov 30, 2018
•
edited
Loading
edited
- track down how we can fetch console.log messages from chrome
- remove massively parallel iteration that breaks webdriver
- remove Leadfoot, we will revert this PR in case of any issues
- make sure API is compatible with current elements/browser services
- explore actions for typing into inputs
- explore cheerio for parsing HTML in services
- see if we can get $.findTestSubject() to work with cheerio like it does in jQuery https://github.com/spalger/kibana/blob/1b698ebc872082fd311b706e4c3aba94ba6f20c9/src/ui/public/jquery/find_test_subject.js
- figure out some metric for measuring stability, test that we get success N times
💔 Build Failed |
0e22f4a
to
13b6716
Compare
💔 Build Failed |
💔 Build Failed |
13b6716
to
94ddf21
Compare
💔 Build Failed |
💔 Build Failed |
💔 Build Failed |
Pinging @elastic/kibana-qa |
aa1ca7d
to
19c6ab9
Compare
💔 Build Failed |
19c6ab9
to
085a7e1
Compare
test/functional/services/find.js
Outdated
return await this.exists(async driver => await driver.findElements(By.css(selector)), timeout); | ||
} | ||
|
||
async moveMouseTo(element) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The reason we put moveMouseTo()
on the element is because it requires the element that is being wrapped instead of the wrapper itself. I think we should keep it that way so that we can keep direct access to the webdriver element inside of the wrapper and because I think element.moveMouseTo()
is more logical than find.moveMouseTo(element)
. If there is a good reason not to put moveMouseTo()
on element then I think we should put it on browser
instead.
💔 Build Failed |
💔 Build Failed |
💔 Build Failed |
💔 Build Failed |
💔 Build Failed |
test/functional/services/find.js
Outdated
await this.byLinkText(selector, timeout); | ||
return wrapAll(await driver.findElements(By.linkText(selector))); | ||
} catch (err) { | ||
return []; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we test the error here to make sure it's the specific type of error we want to replace with an empty array? There are other types of errors that we want to rethrow.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agree, we can. I will specify it explicitly
This comment has been minimized.
This comment has been minimized.
Examining the deadlock we just saw, I'm not comfortable putting this out there is a serious chance it will randomly deadlock on us
💚 Build Succeeded |
Best we can tell WebDriver locks up sometimes when we send too many commands at once, sometimes... It causes random lockups where we never receive another response from WedDriver and we don't want to live with that risk, so for now I've shimmed the Executor class in WebDiver to queue all calls to Executor#send() if there is already a call in progress.
💚 Build Succeeded |
💚 Build SucceededReminder, this build ran the tests 4 times. |
retest |
💚 Build SucceededAgain, this build ran the tests 4 times. |
retest |
💚 Build SucceededAgain, this build ran the tests 4 times. |
retest |
💚 Build SucceededAlright, that's 16 total passes. |
This reverts commit f91996d.
💚 Build Succeeded |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Alright, ready to merge when you are @dmlemeshko!
This reverts commit 0bd3b4f.
💔 Build Failed |
Seriously?! |