Closed Bug 879816 Opened 11 years ago Closed 10 years ago

Using El.tap() on the modal popup dialog "ok" button causes a Marionette error.

Categories

(Remote Protocol :: Marionette, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: roy.collings, Unassigned)

References

Details

(Whiteboard: [touch])

User Agent: Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36

Steps to reproduce:

Using build: unagi-ICS.eng.v1-train.Rel0.4.Sprint10.B-109.Gecko-d96f540.Gaia-ed5cee0

Messages -> Go into a thread -> Edit -> Select All -> Delete -> switch to frame ()

Now try to use el.tap() on the OK button in the modal popup that's in this frame.


Actual results:

The button is not pressed and Marionette reports this:

Traceback (most recent call last):
  File "/home/rc78/projects/owd_test_cases/tests/test_19198.py", line 77, in test_run
    x.tap()
  File "/usr/local/lib/python2.7/dist-packages/marionette_client-0.5.29-py2.7.egg/marionette/marionette.py", line 53, in tap
    return self.marionette._send_message('singleTap', 'ok', element=self.id, x=x, y=y)
  File "/usr/local/lib/python2.7/dist-packages/marionette_client-0.5.29-py2.7.egg/marionette/marionette.py", line 340, in _send_message
    raise TimeoutException(message='socket.timeout', status=ErrorCodes.TIMEOUT, stacktrace=None)
TEST-UNEXPECTED-FAIL | test_19198.py test_19198.test_run | TimeoutException: socket.timeout


Expected results:

The button should have been tapped.

This is also the case when deleting sms threads / deleting a photo via the camera app etc... basically the common element is the modal OK button.
Depends on: 869034
Blocks: 869034
No longer depends on: 869034
If I manually tap the 'delete all threads' button, then run a marionette script to navigate to frame() and tap the button, the tap works.

If I use marionette to tap the 'delete selected threads' button first, then navigate to frame () then tap the button it doesn't work.
In fact, even with JS this isn't working ...

If I do this in one script:

        self.marionette.execute_script("document.getElementById('threads-delete-button').click();")
        time.sleep(2)
        self.marionette.switch_to_frame()
        self.marionette.execute_script("document.getElementById('modal-dialog-confirm-ok').click();")

... the threads delete button is clicked, but not the confirm ok button.

If I set it up manually and just do this:

        self.marionette.switch_to_frame()
        self.marionette.execute_script("document.getElementById('modal-dialog-confirm-ok').click();")

... then the confirm ok button is clicked.
More info. on this issue:

If I use marionette.find_element() to get the 'delete all threads' button, then the next action I take is ignored.
For example:

x = self.marionette.find_element("id", "threads-delete-button")
x.tap()

print "HERE"


... the button is pressed, but then the script simply hangs (and never outputs the word "HERE").
Status: UNCONFIRMED → NEW
Ever confirmed: true
Whiteboard: [touch]
We can interact with these alert prompts safely now.
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → WORKSFORME
Product: Testing → Remote Protocol
You need to log in before you can comment on or make changes to this bug.