- From: Seva Lo <vlotoshnikov@gmail.com>
- Date: Mon, 20 Jul 2015 03:07:35 -0700
- To: David Burns <dburns@mozilla.com>
- Cc: Luke Inman-Semerau <luke.semerau@gmail.com>, "public-browser-tools-testing@w3.org" <public-browser-tools-testing@w3.org>
- Message-ID: <CACD1K906+eYJcztUr=TU5xoyLT==Y9JfxJ4eVs_iG+YvUNGKeQ@mail.gmail.com>
Thanks, answers inline. On Tue, Jun 30, 2015 at 7:00 AM, David Burns <dburns@mozilla.com> wrote: > Comments inline > > David > > On 29 June 2015 at 23:23, Seva Lo <vlotoshnikov@gmail.com> wrote: > >> I have a few suggestions related to this. Happy to file separate bugs or >> PRs for these; let me know if any of this makes sense and what I should do. >> > > Don't do PRs yet for sendKeys. Raise bugs as that area needs to be > rewritten from scratch. > > > >> >> 1. Paragraph that John quoted, along with the one just before that, >> should go in their own section (they are unrelated to sendKeys()). It would >> help if the spec defined what it calls the "unexpected modal dialog", too. >> > > Agreed. We probably could handle this in the main way that we handle > requests ( > http://w3c.github.io/webdriver/webdriver-spec.html#processing-model). > Feel free to submit a PR for that since most commands would hit this. > Filed https://www.w3.org/Bugs/Public/show_bug.cgi?id=28968 for that. > > >> >> 2. In the paragraph that John quoted it is unclear what exactly is meant >> by "The default for this should be dismiss". It can either be "default >> behavior if user didn't specify anything special at all" or "default >> behavior if user did specify via a capability that they would like the >> unexpected modal dialogs to be closed but didn't specify whether they >> should be dismissed or accepted". >> I suggest replacing "The default for this should be dismiss" by >> (something like): >> >> "By default all unexpected model dialogs MUST result in Unexpected alert >> open error being thrown. User SHOULD be able to request the remote end >> to automatically close unexpected modal dialogs. The way user requests that >> is by requesting 'unexpectedAlertBehaviour' capability with value 'dismiss' >> or 'accept'. Not requesting 'unexpectedAlertBehaviour' capability is >> equivalent to requesting it with the default value of 'throw'." >> > > This looks useful. Just need to think of a good place to put it in the > spec. > I found an existing related bug and added https://www.w3.org/Bugs/Public/show_bug.cgi?id=24816#c3 there. That covers unexpectedAlertBehavior capability and "Alert thrown from onbeforeunload event". Thanks, Seva > >> (Yes, I suggest the spec should be specific about the name of the >> capability, its values and behavior, even if supporting that capability at >> all is only a SHOULD. unexpectedAlertBehaviour is the capability that's >> supported by FirefoxDriver [and only FirefoxDriver?] right now.) >> > > Is this a capability that we want to have moving forward? I have never > felt the need to use it but people who scrape the web using it like it. Two > separate use cases which make me wonder if we should add it in. > > >> >> 3. Alert thrown from onbeforeunload event (and a result of a navigation >> command or quit() or close() or any other command) MUST still throw by >> default (e.g. unless 'unexpectedAlertBehaviour' capability is specified >> with either "dismiss" or "accept"). >> > > Yea, we need to handle this in the spec too. > > >> >> Seva >> >> On Wed, Jun 24, 2015 at 1:36 PM, Luke Inman-Semerau < >> luke.semerau@gmail.com> wrote: >> >>> Yes, your statement is correct and I think to the intention of the >>> spec. Wording is hard :) The spec is also meaning to convey that when >>> the Unexpected alert error gets raised, the Remote End also dismisses >>> the dialog (and it's configurable whether that be a "dismiss" or an >>> "accept" in the case of a window.prompt() or window.confirm().... >>> although I would think there's an edge case here regarding prompt and >>> an auto 'accept' with a blank value would cause javascript to >>> re-prompt). >>> >>> >>> On Wed, Jun 24, 2015 at 12:56 PM, John Jansen <John.Jansen@microsoft.com> >>> wrote: >>> > In the spec[1] it says, >>> > "The remote end SHOULD have a mechanism to allow unexpected modal >>> dialogs to be closed to prevent the remote end from becoming unusable. The >>> default for this should be dismiss. The local end SHOULD allow a capability >>> to be set that allows the default value to be overridden with accept. The >>> local end SHOULD also allow setting the default behaviour to wait for a >>> command to handle the modal. If the next command does not interact with the >>> modal it MUST return a Unexpected alert open error to the local end." >>> > >>> > It is not clear how webdriver is supposed to know that the dialog is >>> unexpected and then retain state so that the next action (that was meant to >>> happen to the page, but actually happened to the modal dialog) is supposed >>> to be stored. >>> > >>> > Current behavior for ChromeDriver seems to be that the test just times >>> out. Since the modal is unexpected, the test fails, and the test author >>> then needs to update the test. I expect most test authors have an >>> 'unexpected alert open' exception handler in their code. Is this meant to >>> replace that? >>> > >>> > I believe the design should be something like this: >>> > "If a modal dialog is shown and the next command does not interact >>> with the modal the remote end MUST return an Unexpected alert open error to >>> the local end." >>> > >>> > And then we just let individuals deal with it how they want to, rather >>> than add the complexity to the driver itself. >>> > >>> > Thoughts? >>> > >>> > Thanks! >>> > -John >>> > >>> > [1] https://w3c.github.io/webdriver/webdriver-spec.html#sendkeys-1 >>> > >>> >>> >> >
Received on Monday, 20 July 2015 10:08:17 UTC