Closed Bug 1353895 Opened 6 years ago Closed 6 years ago

Intermittent /webdriver/actions/mouse.py | mouse.py::test_click_navigation

Categories

(Testing :: web-platform-tests, defect)

Version 3
defect
Not set
normal

Tracking

(firefox56 fixed)

RESOLVED FIXED
mozilla56
Tracking Status
firefox56 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: impossibus)

Details

(Keywords: intermittent-failure, Whiteboard: [stockwell fixed:other])

Attachments

(2 files)

this fails on linux64-debug-e10s starting on May 29th.


In this log:
https://treeherder.mozilla.org/logviewer.html#?repo=mozilla-inbound&job_id=104952304&lineNumber=1697


I see this failure:
[task 2017-06-06T17:51:20.458234Z] 17:51:20     INFO - STDOUT: PASSED
[task 2017-06-06T17:51:20.519829Z] 17:51:20     INFO - STDOUT: =================================== FAILURES ===================================
[task 2017-06-06T17:51:20.520472Z] 17:51:20     INFO - STDOUT: ____________________________ test_click_navigation _____________________________
[task 2017-06-06T17:51:20.523692Z] 17:51:20     INFO - STDOUT: session = <webdriver.client.Session object at 0x7f014707fad0>
[task 2017-06-06T17:51:20.523762Z] 17:51:20     INFO - STDOUT: url = <function inner at 0x7f014c435f50>
[task 2017-06-06T17:51:20.523819Z] 17:51:20     INFO - STDOUT:     def test_click_navigation(session, url):
[task 2017-06-06T17:51:20.523886Z] 17:51:20     INFO - STDOUT:         destination = url("/webdriver/actions/support/test_actions_wdspec.html")
[task 2017-06-06T17:51:20.523948Z] 17:51:20     INFO - STDOUT:         start = link_doc(destination)
[task 2017-06-06T17:51:20.523992Z] 17:51:20     INFO - STDOUT:     
[task 2017-06-06T17:51:20.524040Z] 17:51:20     INFO - STDOUT:         def click(link):
[task 2017-06-06T17:51:20.524495Z] 17:51:20     INFO - STDOUT:             mouse_chain = session.actions.sequence(
[task 2017-06-06T17:51:20.524790Z] 17:51:20     INFO - STDOUT:                 "pointer", "pointer_id", {"pointerType": "mouse"})
[task 2017-06-06T17:51:20.525115Z] 17:51:20     INFO - STDOUT:             mouse_chain.click(element=link).pause(300).perform()
[task 2017-06-06T17:51:20.525444Z] 17:51:20     INFO - STDOUT:     
[task 2017-06-06T17:51:20.525893Z] 17:51:20     INFO - STDOUT:         session.url = start
[task 2017-06-06T17:51:20.526270Z] 17:51:20     INFO - STDOUT:         click(session.find.css("#link", all=False))
[task 2017-06-06T17:51:20.526562Z] 17:51:20     INFO - STDOUT:         assert session.url == destination
[task 2017-06-06T17:51:20.526846Z] 17:51:20     INFO - STDOUT:         # repeat steps to check behaviour after document unload
[task 2017-06-06T17:51:20.527107Z] 17:51:20     INFO - STDOUT:         session.url = start
[task 2017-06-06T17:51:20.527395Z] 17:51:20     INFO - STDOUT:         click(session.find.css("#link", all=False))
[task 2017-06-06T17:51:20.527659Z] 17:51:20     INFO - STDOUT: >       assert session.url == destination
[task 2017-06-06T17:51:20.527966Z] 17:51:20     INFO - STDOUT: E       assert 'data:text/ht...ation%3C/a%3E' == 'http://web-pl...s_wdspec.html'
[task 2017-06-06T17:51:20.528281Z] 17:51:20     INFO - STDOUT: E         - data:text/html;charset=utf-8,%3Ca%20href%3D%22http%3A//web-platform.test%3A8000/webdriver/actions/support/test_actions_wdspec.html%22%20id%3D%22link%22%3Edestination%3C/a%3E
[task 2017-06-06T17:51:20.528529Z] 17:51:20     INFO - STDOUT: E         + http://web-platform.test:8000/webdriver/actions/support/test_actions_wdspec.html
[task 2017-06-06T17:51:20.528822Z] 17:51:20     INFO - STDOUT: tests/web-platform/tests/webdriver/actions/mouse.py:87: AssertionError
[task 2017-06-06T17:51:20.529099Z] 17:51:20     INFO - STDOUT: ===================== 1 failed, 20 passed in 23.68 seconds =====================
[task 2017-06-06T17:51:20.541319Z] 17:51:20     INFO - 
[task 2017-06-06T17:51:20.541784Z] 17:51:20     INFO - TEST-PASS | /webdriver/actions/mouse.py | mouse.py::test_click_at_coordinates 
[task 2017-06-06T17:51:20.542256Z] 17:51:20     INFO - TEST-PASS | /webdriver/actions/mouse.py | mouse.py::test_click_element_center 
[task 2017-06-06T17:51:20.542736Z] 17:51:20     INFO - TEST-UNEXPECTED-FAIL | /webdriver/actions/mouse.py | mouse.py::test_click_navigation 
[task 2017-06-06T17:51:20.543219Z] 17:51:20     INFO - session = <webdriver.client.Session object at 0x7f014707fad0>
[task 2017-06-06T17:51:20.543582Z] 17:51:20     INFO - url = <function inner at 0x7f014c435f50>
[task 2017-06-06T17:51:20.543984Z] 17:51:20     INFO - 
[task 2017-06-06T17:51:20.544743Z] 17:51:20     INFO -     def test_click_navigation(session, url):
[task 2017-06-06T17:51:20.545361Z] 17:51:20     INFO -         destination = url("/webdriver/actions/support/test_actions_wdspec.html")
[task 2017-06-06T17:51:20.545708Z] 17:51:20     INFO -         start = link_doc(destination)
[task 2017-06-06T17:51:20.546027Z] 17:51:20     INFO -     
[task 2017-06-06T17:51:20.546361Z] 17:51:20     INFO -         def click(link):
[task 2017-06-06T17:51:20.546713Z] 17:51:20     INFO -             mouse_chain = session.actions.sequence(
[task 2017-06-06T17:51:20.547045Z] 17:51:20     INFO -                 "pointer", "pointer_id", {"pointerType": "mouse"})
[task 2017-06-06T17:51:20.547379Z] 17:51:20     INFO -             mouse_chain.click(element=link).pause(300).perform()
[task 2017-06-06T17:51:20.547729Z] 17:51:20     INFO -     
[task 2017-06-06T17:51:20.548062Z] 17:51:20     INFO -         session.url = start
[task 2017-06-06T17:51:20.548379Z] 17:51:20     INFO -         click(session.find.css("#link", all=False))
[task 2017-06-06T17:51:20.548716Z] 17:51:20     INFO -         assert session.url == destination
[task 2017-06-06T17:51:20.549021Z] 17:51:20     INFO -         # repeat steps to check behaviour after document unload
[task 2017-06-06T17:51:20.549339Z] 17:51:20     INFO -         session.url = start
[task 2017-06-06T17:51:20.549665Z] 17:51:20     INFO -         click(session.find.css("#link", all=False))
[task 2017-06-06T17:51:20.549988Z] 17:51:20     INFO - >       assert session.url == destination
[task 2017-06-06T17:51:20.550314Z] 17:51:20     INFO - E       assert 'data:text/ht...ation%3C/a%3E' == 'http://web-pl...s_wdspec.html'
[task 2017-06-06T17:51:20.550688Z] 17:51:20     INFO - E         - data:text/html;charset=utf-8,%3Ca%20href%3D%22http%3A//web-platform.test%3A8000/webdriver/actions/support/test_actions_wdspec.html%22%20id%3D%22link%22%3Edestination%3C/a%3E
[task 2017-06-06T17:51:20.551046Z] 17:51:20     INFO - E         + http://web-platform.test:8000/webdriver/actions/support/test_actions_wdspec.html
[task 2017-06-06T17:51:20.551347Z] 17:51:20     INFO - 
[task 2017-06-06T17:51:20.551745Z] 17:51:20     INFO - tests/web-platform/tests/webdriver/actions/mouse.py:87: AssertionError
[task 2017-06-06T17:51:20.553168Z] 17:51:20     INFO - ..................
[task 2017-06-06T17:51:20.553522Z] 17:51:20     INFO - TEST-OK | /webdriver/actions/mouse.py | took 23733ms



it appears we run the Wd job in non-e10s and e10s on linux64 opt/pgo/debug.

it looks as if we are trying to validate a link before clicking it and we end up with what looks to be a href element serialized instead of the link.  Not sure why this would be intermittent.

:jgraham, can you take a look a this or find someone from the web-platform-tests team to look into this?
Flags: needinfo?(james)
Whiteboard: [stockwell needswork]
majazf: do you have time to take a look at this?
Flags: needinfo?(james) → needinfo?(mjzffr)
Will look.
Assignee: nobody → mjzffr
Flags: needinfo?(mjzffr)
A link is clicked, then we check that the click action resulted in a successful navigation. The click action includes a 300ms pause to wait for the navigation, which is why this failure is intermittent -- sometimes that's not enough time for the destination URL to load.

> session.url = start
> link = session.find.css("#link", all=False)
> mouse_chain = session.actions.sequence(
>            "pointer", "pointer_id", {"pointerType": "mouse"})
> mouse_chain.click(element=link).pause(300).perform()
> assert session.url == destination

Options: 
* Quick and terrible "fix": increase the pause from 300ms
* Less terrible? Implement a polling/wait utility and raise when we hit a timeout
:maja_zf, it has been a week with no progress on the bug, this is still failing often and I would like to either see a fix or disable this test case- do you have an update?
Flags: needinfo?(mjzffr)
Let's see how this does: https://treeherder.mozilla.org/#/jobs?repo=try&revision=d7f6597d306b71c3f940a816f40a2ac5580c8579

I'll probably have some time to clean it up and push up for review next week while in transit.
Flags: needinfo?(mjzffr)
Ah, right, Wd tests need a full build now because geckodriver is in tree. Another try:

https://treeherder.mozilla.org/#/jobs?repo=try&revision=ca0e6345a69b36a6bba52c1d1a94e3c53fefad20
I pushed to try today and had 100% failure rate on this test for linux64-debug:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=79aa90eb090d7a056cb7544657dbb00262df6488

Not sure if I am an exception when it comes to try pushes and got the lucky 100% orange, I don't see high failure rates on trunk, so this might be a try issue.
(In reply to Joel Maher ( :jmaher) from comment #11)
> I pushed to try today and had 100% failure rate on this test for
> linux64-debug:
> https://treeherder.mozilla.org/#/
> jobs?repo=try&revision=79aa90eb090d7a056cb7544657dbb00262df6488
> 
> Not sure if I am an exception when it comes to try pushes and got the lucky
> 100% orange, I don't see high failure rates on trunk, so this might be a try
> issue.

It's just because of --artifact. Wd depends on building geckodriver now. I think there's work in progress to get geckodriver working in artifact builds.
Comment on attachment 8880553 [details]
Bug 1353895 - Move all wdspec tests into a package;

https://reviewboard.mozilla.org/r/151884/#review158846
Attachment #8880553 - Flags: review?(james) → review+
Comment on attachment 8880554 [details]
Bug 1353895 - Add wait with timeout to test click with navigation;

https://reviewboard.mozilla.org/r/151886/#review158848
Attachment #8880554 - Flags: review?(james) → review+
Pushed by mjzffr@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/6ae271d2dd9f
Move all wdspec tests into a package; r=jgraham
https://hg.mozilla.org/integration/autoland/rev/342f897311bc
Add wait with timeout to test click with navigation; r=jgraham
Backed out for failing /webdriver/interface.html with Navigator interface: attribute webdriver:

https://hg.mozilla.org/integration/autoland/rev/8524b10375901e81113cb0b69e2b7066c43be5a0
https://hg.mozilla.org/integration/autoland/rev/804f1cf08df72c13129a91ac3a89fe1a63604405

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&revision=342f897311bcd55819bc6dc129557793d666f0b6&filter-resultStatus=testfailed&filter-resultStatus=busted&filter-resultStatus=exception&filter-resultStatus=retry&filter-resultStatus=usercancel&filter-resultStatus=runnable&filter-searchStr=web-platform
Failure log: https://treeherder.mozilla.org/logviewer.html#?job_id=111343985&repo=autoland

02:06:42     INFO - TEST-START | /webdriver/interface.html
02:06:43     INFO - 
02:06:43     INFO - TEST-UNEXPECTED-FAIL | /webdriver/interface.html | Navigator interface: attribute webdriver - assert_true: The prototype object must have a property "webdriver" expected true got false
02:06:43     INFO - IdlInterface.prototype.test_member_attribute/<@http://web-platform.test:8000/resources/idlharness.js:1239:13
02:06:43     INFO - Test.prototype.step@http://web-platform.test:8000/resources/testharness.js:1405:20
02:06:43     INFO - IdlInterface.prototype.test_member_attribute@http://web-platform.test:8000/resources/idlharness.js:1190:5
02:06:43     INFO - IdlInterface.prototype.test_members@http://web-platform.test:8000/resources/idlharness.js:1564:17
02:06:43     INFO - IdlInterface.prototype.test@http://web-platform.test:8000/resources/idlharness.js:811:5
02:06:43     INFO - IdlArray.prototype.test@http://web-platform.test:8000/resources/idlharness.js:425:9
02:06:43     INFO - @http://web-platform.test:8000/webdriver/interface.html:14:1
02:06:43     INFO -
Flags: needinfo?(mjzffr)
I moved a file that should have stayed put.
Flags: needinfo?(mjzffr)
Pushed by mjzffr@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/d54781071195
Move all wdspec tests into a package; r=jgraham
https://hg.mozilla.org/integration/autoland/rev/05299af0968a
Add wait with timeout to test click with navigation; r=jgraham
https://hg.mozilla.org/mozilla-central/rev/d54781071195
https://hg.mozilla.org/mozilla-central/rev/05299af0968a
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla56
Whiteboard: [stockwell needswork] → [stockwell fixed]
Whiteboard: [stockwell fixed] → [stockwell fixed:other]
You need to log in before you can comment on or make changes to this bug.