Implicit Wait

Hey all,

Going through our bug backlog and came across an interesting interop issue. Per the specification implicit wait should only account for element retrieval commands
https://w3c.github.io/webdriver/webdriver-spec.html#dfn-set-timeouts

Our section on retrieving elements details only specific commands
https://w3c.github.io/webdriver/webdriver-spec.html#element-retrieval

It seems though, as per a unit test I was debugging, that at some point it wasn't used for just FindElement-based commands but all commands sent to the driver. I wanted to determine if the specification in this instance was an intentional change from that or not. The bug I'm investigating is this:
https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/3900872/

Initially I thought our impl might be choking on the 5000.0 for ms (weird to me to send decimal values for ms), but we seemed to return fine from that. The reason why Edge fails in this case is that we require focus before sending keys (per the specification). When the reveal element gets clicked, there is a 1000ms delay before the revealed element gets displayed. As this isn't an element location command, we fire the next command as soon as Click() returns. This means we go to send keys to a hidden element, which then fails as we can't focus a hidden element and we get the bug which mistakenly assumes we aren't respecting implicit wait.

Thoughts on this? Should all commands be gated by implicit wait or was this determined and I just wasn't there/didn't hear about it. Our current impl seems to be spec compliant but wanted to call out the change nonetheless.

Thanks,
Clay

Received on Friday, 14 October 2016 21:58:51 UTC