Summary: | WebDriver on non-iOS ports cannot perform ActionChain which has scrolling down to the element and click it | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Tomoki Imai <tomoki.imai> | ||||||
Component: | WebDriver | Assignee: | BJ Burg <bburg> | ||||||
Status: | RESOLVED FIXED | ||||||||
Severity: | Normal | CC: | bburg, darin, hi, symonovakateryna, webkit-bug-importer | ||||||
Priority: | P2 | Keywords: | InRadar | ||||||
Version: | WebKit Nightly Build | ||||||||
Hardware: | Unspecified | ||||||||
OS: | Unspecified | ||||||||
See Also: | https://bugs.webkit.org/show_bug.cgi?id=195696 | ||||||||
Attachments: |
|
Description
Tomoki Imai
2020-02-26 03:05:50 PST
Thanks for the detailed investigation! I will try this test case on Mac to see if it's affected. If so, this may be related or the same as some other Perform Actions bugs that are currently open. Otherwise, it may be specific to delegated scrolling and I may not be able to directly validate a fix. (It would be great to have WPT WebDriver test results for WebKit EWS...) I am testing out a patch for this. Created attachment 401569 [details]
Patch
Comment on attachment 401569 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=401569&action=review r=me > Source/WebKit/UIProcess/Automation/mac/WebAutomationSessionMac.mm:140 > + IntPoint locationInView = WebCore::IntPoint(locationInViewport.x(), locationInViewport.y() + page.topContentInset()); Do we want to do this in a caller function? Aside: this code makes me wish there was a `IntPoint IntPoint::move(int dx, int dy);` that does this :( Comment on attachment 401569 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=401569&action=review >> Source/WebKit/UIProcess/Automation/mac/WebAutomationSessionMac.mm:140 >> + IntPoint locationInView = WebCore::IntPoint(locationInViewport.x(), locationInViewport.y() + page.topContentInset()); > > Do we want to do this in a caller function? > > Aside: this code makes me wish there was a `IntPoint IntPoint::move(int dx, int dy);` that does this :( Seems strange to have both IntPoint and WebCore::IntPoint on the same line. Either we need to specify the namespace or we don’t. Here’s another way to write this: auto locationInView = locationInViewport) + IntPoint { 0, page.topContentInset() }; Or could use IntSize instead of IntPoint for the right hand size of the +. Sadly can’t write it without specifying a type at all. Comment on attachment 401569 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=401569&action=review >>> Source/WebKit/UIProcess/Automation/mac/WebAutomationSessionMac.mm:140 >>> + IntPoint locationInView = WebCore::IntPoint(locationInViewport.x(), locationInViewport.y() + page.topContentInset()); >> >> Do we want to do this in a caller function? >> >> Aside: this code makes me wish there was a `IntPoint IntPoint::move(int dx, int dy);` that does this :( > > Seems strange to have both IntPoint and WebCore::IntPoint on the same line. Either we need to specify the namespace or we don’t. > > Here’s another way to write this: > > auto locationInView = locationInViewport) + IntPoint { 0, page.topContentInset() }; > > Or could use IntSize instead of IntPoint for the right hand size of the +. Sadly can’t write it without specifying a type at all. auto locationInView = locationInViewport + IntPoint { 0, page.topContentInset() }; Committed r262861: <https://trac.webkit.org/changeset/262861> *** Bug 212521 has been marked as a duplicate of this bug. *** |