Closed
Bug 1255955
Opened 9 years ago
Closed 8 years ago
Wrong element is clicked when requested element is out of view in <select> element
Categories
(Testing :: General, defect)
Testing
General
Tracking
(firefox49 fixed, firefox50 fixed, firefox51 fixed)
RESOLVED
FIXED
mozilla51
People
(Reporter: titus.fortner, Assigned: ato)
References
(Blocks 1 open bug)
Details
(Keywords: pi-marionette-server)
Attachments
(15 files, 2 obsolete files)
86.13 KB,
image/png
|
Details | |
58 bytes,
text/x-review-board-request
|
automatedtester
:
review+
|
Details |
58 bytes,
text/x-review-board-request
|
automatedtester
:
review+
|
Details |
58 bytes,
text/x-review-board-request
|
automatedtester
:
review+
|
Details |
58 bytes,
text/x-review-board-request
|
automatedtester
:
review+
|
Details |
58 bytes,
text/x-review-board-request
|
automatedtester
:
review+
|
Details |
58 bytes,
text/x-review-board-request
|
automatedtester
:
review+
|
Details |
58 bytes,
text/x-review-board-request
|
automatedtester
:
review+
|
Details |
58 bytes,
text/x-review-board-request
|
automatedtester
:
review+
|
Details |
58 bytes,
text/x-review-board-request
|
automatedtester
:
review+
|
Details |
58 bytes,
text/x-review-board-request
|
automatedtester
:
review+
|
Details |
58 bytes,
text/x-review-board-request
|
automatedtester
:
review+
|
Details |
58 bytes,
text/x-review-board-request
|
automatedtester
:
review+
|
Details |
58 bytes,
text/x-review-board-request
|
automatedtester
:
review+
|
Details |
58 bytes,
text/x-review-board-request
|
automatedtester
:
review+
|
Details |
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36
Steps to reproduce:
This test:
https://github.com/watir/watirspec/blob/master/select_list_spec.rb#L268
with this html:
https://github.com/watir/watirspec/blob/master/html/forms_with_input_elements.html#L48
There are 5 options in the list, but only 4 are displayed. To select 'Sweden' a user needs to scroll to it. Marionette is clicking the element below it.
Debug info:
https://gist.github.com/titusfortner/701d4e84f4b31c73f171
Actual results:
The browse button below the multiple select list was clicked
Expected results:
Sweden should have been selected from the multiple select list
Assignee | ||
Updated•9 years ago
|
Blocks: webdriver
Keywords: ateam-marionette-server
Assignee | ||
Updated•8 years ago
|
Summary: Multiple Select tag → Wrong element is clicked when requested element is out of view in <select> element
Assignee | ||
Updated•8 years ago
|
OS: Unspecified → All
Hardware: Unspecified → All
Version: 45 Branch → Trunk
Assignee | ||
Updated•8 years ago
|
Assignee: nobody → ato
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
Assignee | ||
Comment 1•8 years ago
|
||
Review commit: https://reviewboard.mozilla.org/r/69666/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/69666/
Attachment #8778356 -
Flags: review?(dburns)
Attachment #8778357 -
Flags: review?(dburns)
Attachment #8778358 -
Flags: review?(dburns)
Attachment #8778359 -
Flags: review?(dburns)
Attachment #8778360 -
Flags: review?(dburns)
Attachment #8778361 -
Flags: review?(dburns)
Attachment #8778362 -
Flags: review?(dburns)
Attachment #8778363 -
Flags: review?(dburns)
Attachment #8778364 -
Flags: review?(dburns)
Attachment #8778365 -
Flags: review?(dburns)
Attachment #8778366 -
Flags: review?(dburns)
Assignee | ||
Comment 2•8 years ago
|
||
The if-condition in the specification compatible interactability check
for interaction.clickElement is wrong. It should scroll an element into
view when it is _not_ visible. If it is visible it does not matter.
Review commit: https://reviewboard.mozilla.org/r/69668/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/69668/
Assignee | ||
Comment 3•8 years ago
|
||
We want to redo the element interactability calculation after scrolling.
Determining if an element is not visible by the old location would
be wrong.
Review commit: https://reviewboard.mozilla.org/r/69670/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/69670/
Assignee | ||
Comment 4•8 years ago
|
||
Some of the element interactability- and visibility checks were previously
done when interaction.clickElement was called, and not as part of the
resolution of the returned promise. This could have caused a potential
race condition.
Review commit: https://reviewboard.mozilla.org/r/69672/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/69672/
Assignee | ||
Comment 5•8 years ago
|
||
"Check" is a fine word but with functions which primary purpose is to
throw an error internally we should use "assert" to make the reprecussions
of using them crystal clear.
Review commit: https://reviewboard.mozilla.org/r/69674/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/69674/
Assignee | ||
Comment 6•8 years ago
|
||
Review commit: https://reviewboard.mozilla.org/r/69676/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/69676/
Assignee | ||
Comment 7•8 years ago
|
||
Also fixes assumptions about permitted mouse events.
Review commit: https://reviewboard.mozilla.org/r/69678/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/69678/
Assignee | ||
Comment 8•8 years ago
|
||
Review commit: https://reviewboard.mozilla.org/r/69680/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/69680/
Assignee | ||
Comment 9•8 years ago
|
||
Review commit: https://reviewboard.mozilla.org/r/69682/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/69682/
Assignee | ||
Comment 10•8 years ago
|
||
Review commit: https://reviewboard.mozilla.org/r/69684/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/69684/
Assignee | ||
Comment 11•8 years ago
|
||
This patch introduces support for clicking on <select> and <select
multiple> elements to Marionette. As <select> elements, especially
<select multiple>, are operating system level concepts usually implemented
with native widget sets, this patch takes the approach of dispatching
generated events.
Review commit: https://reviewboard.mozilla.org/r/69686/diff/#index_header
See other reviews: https://reviewboard.mozilla.org/r/69686/
Comment 12•8 years ago
|
||
Comment on attachment 8778356 [details]
Bug 1255955 - Rename checkbox test to not conflict with select tests;
https://reviewboard.mozilla.org/r/69666/#review66866
Attachment #8778356 -
Flags: review?(dburns) → review+
Comment 13•8 years ago
|
||
https://reviewboard.mozilla.org/r/69668/#review66868
::: testing/marionette/interaction.js:95
(Diff revision 1)
> let win = getWindow(el);
>
> let visible = false;
> if (specCompat) {
> visible = element.isInteractable(el);
> - if (visible) {
> + if (!visible) {
Looking at isInteractable, it will always return `true`. On https://dxr.mozilla.org/mozilla-central/source/testing/marionette/element.js#912 `isKeyboardInteractable()` always returning `true`. I dont think we are going to enter this conditional as it is.
Comment 14•8 years ago
|
||
Comment on attachment 8778357 [details]
Bug 1255955 - Scroll element into view when not visible;
https://reviewboard.mozilla.org/r/69668/#review66870
Attachment #8778357 -
Flags: review?(dburns) → review-
Comment 15•8 years ago
|
||
https://reviewboard.mozilla.org/r/69670/#review66872
::: testing/marionette/interaction.js:98
(Diff revision 1)
> if (specCompat) {
> visible = element.isInteractable(el);
> if (!visible) {
> el.scrollIntoView(false);
> }
> + visible = element.isInteractable(el);
Same issue as described in patch titled `Bug 1255955 - Scroll element into view when not visible; r?automatedtester `
Comment 16•8 years ago
|
||
Comment on attachment 8778358 [details]
Bug 1255955 - Recalculate visibility after scrolling;
https://reviewboard.mozilla.org/r/69670/#review66874
Attachment #8778358 -
Flags: review?(dburns) → review-
Comment 17•8 years ago
|
||
Comment on attachment 8778359 [details]
Bug 1255955 - Perform click checks as part of promise;
https://reviewboard.mozilla.org/r/69672/#review66876
Attachment #8778359 -
Flags: review?(dburns) → review+
Comment 18•8 years ago
|
||
Comment on attachment 8778360 [details]
Bug 1255955 - Rename a11y functions check* to assert*;
https://reviewboard.mozilla.org/r/69674/#review66878
Attachment #8778360 -
Flags: review?(dburns) → review+
Comment 19•8 years ago
|
||
Comment on attachment 8778361 [details]
Bug 1255955 - Fix event.parseModifiers_ to not use module argument name;
https://reviewboard.mozilla.org/r/69676/#review66884
Attachment #8778361 -
Flags: review?(dburns) → review+
Comment 20•8 years ago
|
||
Comment on attachment 8778362 [details]
Bug 1255955 - Fix event.sendMouseEvent to work in privileged space;
https://reviewboard.mozilla.org/r/69678/#review66886
Attachment #8778362 -
Flags: review?(dburns) → review+
Updated•8 years ago
|
Attachment #8778363 -
Flags: review?(dburns) → review+
Comment 21•8 years ago
|
||
Comment on attachment 8778363 [details]
Bug 1255955 - Use correct argument in event.synthesizeMouse;
https://reviewboard.mozilla.org/r/69680/#review66888
Comment 22•8 years ago
|
||
Comment on attachment 8778364 [details]
Bug 1255955 - Add function to dispatch events to event library;
https://reviewboard.mozilla.org/r/69682/#review66890
Attachment #8778364 -
Flags: review?(dburns) → review+
Comment 23•8 years ago
|
||
Comment on attachment 8778365 [details]
Bug 1255955 - Add shorthands for generating common DOM events;
https://reviewboard.mozilla.org/r/69684/#review66892
Attachment #8778365 -
Flags: review?(dburns) → review+
Comment 24•8 years ago
|
||
https://reviewboard.mozilla.org/r/69686/#review66902
::: testing/marionette/harness/marionette/tests/unit/test_select.py:29
(Diff revision 1)
> + self.assertFalse(self.marionette.execute_script(
> + "return arguments[0].selected", script_args=[option_element], sandbox=None),
> + "<option> selected attribute not updated")
> +
> +
> +class TestSelect(SelectTestCase):
Can you add a test for `optgroup` as there is one in the selenium test suite for some reason
```
<select>
<optgroup label="Group">
<option value="one">one</option>
<option id="two-in-group" value="two">two</option>
</optgroup>
</select>
```
Comment 25•8 years ago
|
||
Comment on attachment 8778366 [details]
Bug 1255955 - Add support for interacting with <select> elements;
https://reviewboard.mozilla.org/r/69686/#review66904
Attachment #8778366 -
Flags: review?(dburns) → review+
Assignee | ||
Comment 27•8 years ago
|
||
mozreview-review-reply |
Comment on attachment 8778357 [details]
Bug 1255955 - Scroll element into view when not visible;
https://reviewboard.mozilla.org/r/69668/#review66868
> Looking at isInteractable, it will always return `true`. On https://dxr.mozilla.org/mozilla-central/source/testing/marionette/element.js#912 `isKeyboardInteractable()` always returning `true`. I dont think we are going to enter this conditional as it is.
You’re right, and according to a spec patch I filed yesterday we should only check for pointer-interactability here: https://github.com/w3c/webdriver/pull/321/files#diff-ce5a67d95770dc70b1b4250c7a9348f2R4138
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Assignee | ||
Comment 35•8 years ago
|
||
Comment on attachment 8778361 [details]
Bug 1255955 - Fix event.parseModifiers_ to not use module argument name;
Review request updated; see interdiff: https://reviewboard.mozilla.org/r/69676/diff/1-2/
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Assignee | ||
Comment 41•8 years ago
|
||
mozreview-review-reply |
Comment on attachment 8778366 [details]
Bug 1255955 - Add support for interacting with <select> elements;
https://reviewboard.mozilla.org/r/69686/#review66902
> Can you add a test for `optgroup` as there is one in the selenium test suite for some reason
>
> ```
> <select>
> <optgroup label="Group">
> <option value="one">one</option>
> <option id="two-in-group" value="two">two</option>
> </optgroup>
> </select>
> ```
Good catch. Added a test.
Comment 42•8 years ago
|
||
mozreview-review |
Comment on attachment 8778357 [details]
Bug 1255955 - Scroll element into view when not visible;
https://reviewboard.mozilla.org/r/69668/#review67626
Attachment #8778357 -
Flags: review?(dburns) → review+
Comment 43•8 years ago
|
||
mozreview-review |
Comment on attachment 8778358 [details]
Bug 1255955 - Recalculate visibility after scrolling;
https://reviewboard.mozilla.org/r/69670/#review67630
Attachment #8778358 -
Flags: review?(dburns) → review-
Comment 44•8 years ago
|
||
mozreview-review |
Comment on attachment 8779328 [details]
Bug 1255955 - Make interaction.clickElement return a promise;
https://reviewboard.mozilla.org/r/70324/#review67636
Attachment #8779328 -
Flags: review?(dburns) → review+
Comment 45•8 years ago
|
||
mozreview-review |
Comment on attachment 8778358 [details]
Bug 1255955 - Recalculate visibility after scrolling;
https://reviewboard.mozilla.org/r/69670/#review67638
Comment 46•8 years ago
|
||
mozreview-review |
Comment on attachment 8778358 [details]
Bug 1255955 - Recalculate visibility after scrolling;
https://reviewboard.mozilla.org/r/69670/#review67640
Attachment #8778358 -
Flags: review- → review+
Comment 47•8 years ago
|
||
mozreview-review |
Comment on attachment 8779329 [details]
Bug 1255955 - Check for pointer-interactability on click;
https://reviewboard.mozilla.org/r/70326/#review67642
Attachment #8779329 -
Flags: review?(dburns) → review+
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Assignee | ||
Updated•8 years ago
|
Attachment #8779328 -
Attachment is obsolete: true
Assignee | ||
Updated•8 years ago
|
Attachment #8779329 -
Attachment is obsolete: true
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment hidden (mozreview-request) |
Comment 73•8 years ago
|
||
mozreview-review |
Comment on attachment 8780854 [details]
Bug 1255955 - Document clickElement and calculateCentreCoords;
https://reviewboard.mozilla.org/r/71436/#review69568
Attachment #8780854 -
Flags: review?(dburns) → review+
Comment 74•8 years ago
|
||
mozreview-review |
Comment on attachment 8780855 [details]
Bug 1255955 - Simplify element.clickElement complexity;
https://reviewboard.mozilla.org/r/71438/#review69572
Attachment #8780855 -
Flags: review?(dburns) → review+
Comment 75•8 years ago
|
||
mozreview-review |
Comment on attachment 8780856 [details]
Bug 1255955 -Run element enabled check before accessibility checks;
https://reviewboard.mozilla.org/r/71440/#review69580
Attachment #8780856 -
Flags: review?(dburns) → review+
Comment 76•8 years ago
|
||
Pushed by atolfsen@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/68a158b365c8
Rename checkbox test to not conflict with select tests; r=automatedtester
https://hg.mozilla.org/integration/autoland/rev/ccb7b3eed99b
Scroll element into view when not visible; r=automatedtester
https://hg.mozilla.org/integration/autoland/rev/b73525918482
Recalculate visibility after scrolling; r=automatedtester
https://hg.mozilla.org/integration/autoland/rev/04e81c5855ce
Perform click checks as part of promise; r=automatedtester
https://hg.mozilla.org/integration/autoland/rev/136dce46f6e3
Rename a11y functions check* to assert*; r=automatedtester
https://hg.mozilla.org/integration/autoland/rev/a7cfbd664c93
Fix event.parseModifiers_ to not use module argument name; r=automatedtester
https://hg.mozilla.org/integration/autoland/rev/1638c7c1614d
Fix event.sendMouseEvent to work in privileged space; r=automatedtester
https://hg.mozilla.org/integration/autoland/rev/b7eed459e6d7
Use correct argument in event.synthesizeMouse; r=automatedtester
https://hg.mozilla.org/integration/autoland/rev/9ed13f873a2a
Add function to dispatch events to event library; r=automatedtester
https://hg.mozilla.org/integration/autoland/rev/8ef4a877d2be
Add shorthands for generating common DOM events; r=automatedtester
https://hg.mozilla.org/integration/autoland/rev/8e8aa1f9c27b
Add support for interacting with <select> elements; r=automatedtester
https://hg.mozilla.org/integration/autoland/rev/8426aadbf3db
Document clickElement and calculateCentreCoords; r=automatedtester
https://hg.mozilla.org/integration/autoland/rev/2b2e61f6c66b
Simplify element.clickElement complexity; r=automatedtester
https://hg.mozilla.org/integration/autoland/rev/da03fe82ba9d
Run element enabled check before accessibility checks; r=automatedtester
Comment 77•8 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/68a158b365c8
https://hg.mozilla.org/mozilla-central/rev/ccb7b3eed99b
https://hg.mozilla.org/mozilla-central/rev/b73525918482
https://hg.mozilla.org/mozilla-central/rev/04e81c5855ce
https://hg.mozilla.org/mozilla-central/rev/136dce46f6e3
https://hg.mozilla.org/mozilla-central/rev/a7cfbd664c93
https://hg.mozilla.org/mozilla-central/rev/1638c7c1614d
https://hg.mozilla.org/mozilla-central/rev/b7eed459e6d7
https://hg.mozilla.org/mozilla-central/rev/9ed13f873a2a
https://hg.mozilla.org/mozilla-central/rev/8ef4a877d2be
https://hg.mozilla.org/mozilla-central/rev/8e8aa1f9c27b
https://hg.mozilla.org/mozilla-central/rev/8426aadbf3db
https://hg.mozilla.org/mozilla-central/rev/2b2e61f6c66b
https://hg.mozilla.org/mozilla-central/rev/da03fe82ba9d
Status: ASSIGNED → RESOLVED
Closed: 8 years ago
status-firefox51:
--- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla51
Assignee | ||
Comment 78•8 years ago
|
||
These are test-only changes.
Whiteboard: [checkin-needed-aurora][checkin-needed-beta]
Comment 79•8 years ago
|
||
bugherder uplift |
https://hg.mozilla.org/releases/mozilla-aurora/rev/2f7f2aa1c730
https://hg.mozilla.org/releases/mozilla-aurora/rev/decf2949ae6c
https://hg.mozilla.org/releases/mozilla-aurora/rev/f1da984b8731
https://hg.mozilla.org/releases/mozilla-aurora/rev/fc55305fb268
https://hg.mozilla.org/releases/mozilla-aurora/rev/6b1c452bd581
https://hg.mozilla.org/releases/mozilla-aurora/rev/4371df1f298a
https://hg.mozilla.org/releases/mozilla-aurora/rev/b8d43d25038b
https://hg.mozilla.org/releases/mozilla-aurora/rev/5a591a1a98cd
https://hg.mozilla.org/releases/mozilla-aurora/rev/0e8d2fe2a205
https://hg.mozilla.org/releases/mozilla-aurora/rev/c06be43a960f
https://hg.mozilla.org/releases/mozilla-aurora/rev/30edafac6164
https://hg.mozilla.org/releases/mozilla-aurora/rev/72f83f7e308c
https://hg.mozilla.org/releases/mozilla-aurora/rev/393b9382b1fc
https://hg.mozilla.org/releases/mozilla-aurora/rev/f4aa3c3af595
status-firefox50:
--- → fixed
Whiteboard: [checkin-needed-aurora][checkin-needed-beta] → [checkin-needed-beta]
Comment 80•8 years ago
|
||
bugherder uplift |
https://hg.mozilla.org/releases/mozilla-beta/rev/690edd23c8c6
https://hg.mozilla.org/releases/mozilla-beta/rev/833ee9a9a942
https://hg.mozilla.org/releases/mozilla-beta/rev/556eca85f7d7
https://hg.mozilla.org/releases/mozilla-beta/rev/07a530ae86fd
https://hg.mozilla.org/releases/mozilla-beta/rev/7ae6f4a74bdb
https://hg.mozilla.org/releases/mozilla-beta/rev/004286546df5
https://hg.mozilla.org/releases/mozilla-beta/rev/9180c0406c2c
https://hg.mozilla.org/releases/mozilla-beta/rev/019699b3498f
https://hg.mozilla.org/releases/mozilla-beta/rev/22b6159c39ec
https://hg.mozilla.org/releases/mozilla-beta/rev/dd9969584975
https://hg.mozilla.org/releases/mozilla-beta/rev/a6cb9a93d51e
https://hg.mozilla.org/releases/mozilla-beta/rev/11781f2941a9
https://hg.mozilla.org/releases/mozilla-beta/rev/846649708880
https://hg.mozilla.org/releases/mozilla-beta/rev/1779d707fb17
status-firefox49:
--- → fixed
Whiteboard: [checkin-needed-beta]
You need to log in
before you can comment on or make changes to this bug.
Description
•