01:10:40 RRSAgent has joined #testing 01:10:40 logging to http://www.w3.org/2013/11/12-testing-irc 01:11:50 Meeting: Browser Tools and Testing WG, WebDriver spec 01:11:54 RRSAgent, draft minutes 01:11:54 I have made the request to generate http://www.w3.org/2013/11/12-testing-minutes.html wilhelm 01:12:11 RRSAgent, make logs public 01:13:13 a12u has joined #testing 01:14:03 kawada has joined #testing 01:14:17 simonste_ has changed the topic to: Day 2 of WebDriver: interactions APIs, timelines, v1.1 01:14:19 ISL has joined #testing 01:15:16 kimwoonyoung has joined #testing 01:18:40 (We're waiting for the last laggards, starting a little later than planned.) 01:18:52 TieSun has joined #testing 01:19:01 rhauck has joined #testing 01:20:50 ShuotaoGao has joined #testing 01:21:06 mizuman has joined #testing 01:21:22 scribe: simonstewart 01:21:25 garykac has joined #testing 01:21:30 Chair: wilhelm 01:21:34 RRSAgent, draft minutes 01:21:34 I have made the request to generate http://www.w3.org/2013/11/12-testing-minutes.html wilhelm 01:22:00 Scribe: simonstewart 01:22:07 RRSAgent, draft minutes 01:22:07 I have made the request to generate http://www.w3.org/2013/11/12-testing-minutes.html wilhelm 01:22:19 kennyluck has joined #testing 01:22:31 Introductions 01:22:46 MikeSmith asks if there's anyone new 01:22:46 kennyluck has joined #testing 01:23:07 garykac Gary Kackmarcik 01:23:16 garykac from Google 01:23:32 s/Kackmarcik/Kacmarik/ 01:23:33 zqzhang_ has joined #testing 01:23:38 rhauck1 has joined #testing 01:23:47 s/Kacmarik/Kacmarcik/ 01:23:53 s/Kacmarik/Kacmarcik/ ^_^ 01:23:58 @@ interest in console api 01:24:01 i/Introductions/Topic: Introductions/ 01:25:03 rhauck has joined #testing 01:25:08 sho has joined #testing 01:25:21 MikeSmith: no-one's working on the console api right now, but if we had an editor 01:25:35 More introductions (same as yesterday) 01:26:15 wilhelm, MikeSmith, MarcFisher 01:26:31 Observer introductions 01:26:32 s/@@/Alois Reitbauer - 01:26:40 RRSAgent, make minutes 01:26:40 I have made the request to generate http://www.w3.org/2013/11/12-testing-minutes.html MikeSmith 01:26:46 _win 27 01:27:00 s/_win 27// 01:27:04 RRSAgent, make minutes 01:27:04 I have made the request to generate http://www.w3.org/2013/11/12-testing-minutes.html MikeSmith 01:27:17 wilhelm looks up meeting agenda 01:27:28 First topic: interactions 01:27:40 http://www.w3.org/wiki/WebDriver/2013-TPAC-F2F 01:28:10 rhauck2 has joined #testing 01:28:21 garykac: the components that the DOM spec needs. 01:28:37 Mouse is pretty simple: just need mouse move, over, etc. Seems straight forward 01:29:08 Keyboard events: want to be able to test US ASCII, but also international keybaord. Want to test "given a layout, what events are generated" 01:29:10 s/MikeSmith/MikeSmith, Chris Gao/ 01:29:20 Being able to automatically change layout is desirable. 01:29:25 Also generate dead keys 01:29:33 Also creating IME composition events 01:30:20 Those are the big things. Undoubtedly need more 01:30:22 :) 01:30:35 Scribe: wilhelm 01:30:53 simonstewart: Mouse is pretty easy. 01:31:09 ... There's a limited range of APIs that we're expecting to generate. 01:31:19 ... click, dbclick, contextclick, mousedown, mousedown. 01:31:22 ... OS-level. 01:31:32 ... These events are on the other side of the glass. 01:31:41 .... How does the browser process all these things? 01:31:49 ... We discussed yesterday scroll wheel. 01:32:06 garykac: Would that include ticks? There's pixels and ticks. 01:32:10 simonstewart: Undecided. 01:32:31 simonstewart: Keyboard: presskey, releasekey, send a string of characters 01:32:35 AutomatedTester has joined #testing 01:32:42 ... Just a charsequence. 01:32:55 ... With webelement.sendkeys, we allow people to send internationalized text 01:33:04 garykac: For Japanese, I don't want to send the full string. 01:33:20 simonstewart: The commands on webelement are do-as-I-mean. 01:33:35 ... The advanced actions are do-as-I-say. 01:33:54 simonstewart: Initial implementation just blasted the value in. 01:34:12 ... To do the second case, there is the ability to have a IME engine in the open source web driver. 01:34:40 MarcFisher: There are functions to call, but they are not neccessarily working. 01:34:44 simonstewart: IME-handler 01:34:51 ... Will list the available engines. 01:35:12 ... Your test will be very brittle, as it relies on a specific IME engine. 01:35:15 garykac: Scan code? 01:35:35 simonstewart: Initial implementation does some calculation to figure out the scan code. Specify A, queries the OS. 01:35:44 garykac: This needs to be controlled in the tests. 01:35:52 garykac: I want to test A on a French keyboard... 01:36:07 simonstewart: We're not an OS level automation API, but browser. We'll take advantage of the machine. 01:36:36 ... For testing multiple keyboards, you may need multiple VMs. 01:36:45 garykac: That will not work. 01:37:00 simonstewart: I'm not aware of any cross-platform IME... 01:37:18 garykac: I thought we'd have OS specific components. 01:37:26 simonstewart: And we attempt to mask that. 01:37:45 simonstewart: ChromeDriver, Marionette inject events right into the event queue. 01:37:58 ... Looks like it comes from the OS. 01:38:07 ... FFdriver and IE on Win uses Win32 APIs. 01:38:13 ... Error-prone. 01:38:23 ... The OS makes some assumptions about focus of windows. 01:38:38 .... For accurate emulation, you need to go through the Win32 APIs. 01:38:48 ... These tests take a long time to run. 01:39:01 ... Must be able to run without focus, for parallell processing. 01:39:25 ... spec has three audiences: People writing tests for their web apps. 01:39:30 ... Browser vendors. 01:39:51 ... Spec editors. 01:39:57 miao-cesi has joined #testing 01:40:15 ... Low-level, cross-platform method is incredibly challenging. 01:40:26 ... TBH, we don't ahve the expertise around this table. 01:40:29 ... Maybe you. 01:40:50 garykac: Injecting keyboard events into @@ is something that we do. 01:41:01 simonstewart: Unfocused windows? 01:41:11 garykac: Win yes, Mac no. 01:41:26 simonstewart: Mac has a mouse window and keyboard window. 01:41:38 garykac: I have less concern about the machine doing something else. 01:41:56 ... Interop between browser vendors. Difficult to run tests will not be run. 01:42:03 ... You inject cooked browser events? 01:42:07 simonstewart: Depends on the broser implementation. 01:42:21 ... IE: three methods. Synthetitc JS events. 01:42:25 ... A library I wrote. 01:42:38 ... Attempts to put raw events into the Windows message queue. 01:42:45 ... Scan codes, et. 01:42:47 c 01:42:59 ...3: Use something like sendkeys. 01:43:13 garykac: Concern: Translation from OS events... 01:43:43 garykac: Given this sequence on Windows, all browsers should get the same. 01:43:48 simonstewart: Out of scope? 01:44:06 dburns: In the way we insert trusted events into the browser, we depend on library in browser. 01:44:10 ... Mobile, desktop. 01:44:21 simonstewart: Mobile is maybe the best case. 01:44:36 simonstewart: Uses accessibility API. 01:44:42 ... Good emulation by accident. 01:44:45 glenn has joined #testing 01:44:50 simonstewart: Suggestions on how this can be done? 01:45:06 simonstewart: We don't want to give the browser window OS focus. 01:45:22 garykac: There's parts of it that can be used. 01:45:32 garykac: Mouse will be useful. 01:45:51 garykac: If we're not generating the keys on the OS level, that might not fit. 01:45:54 simonstewart: Huge problem. 01:46:03 garykac: Huge because it's lots of small things. 01:46:13 simonstewart: And you've got at least two axes. OS, browser. 01:46:23 simonstewart: IME, third axis. 01:46:32 garykac: Different keyboard layouts. 01:46:39 simonstewart: French dvorak... 01:46:39 glenn has joined #testing 01:46:48 garykac: SOme keys are not exposed... 01:47:01 garykac: Writing OS specific tests must happen for this 01:47:19 simonstewart: Does Win32 sendkeys do what you need? 01:47:47 garykac: We sometimes want to know what the physical key is. Need more information. 01:48:23 RRSAgent, draft minutes 01:48:23 I have made the request to generate http://www.w3.org/2013/11/12-testing-minutes.html wilhelm 01:48:52 simonstewart: The IME implementation we had worked on Windows and Linux. 01:49:05 simonstewart: You could take these from the project. 01:49:12 https://code.google.com/p/selenium/source/browse/#git%2Fcpp%2Fimehandler 01:49:21 https://code.google.com/p/selenium/source/browse/#git%2Fcpp%2Fwebdriver-interactions 01:49:38 https://code.google.com/p/selenium/source/browse/cpp/webdriver-interactions/interactions.cpp 01:50:33 simonstewart: *explains code just posted above* 01:50:55 simonstewart: *explains relationship between Selenium / WEbDriver* 01:52:02 simonstewart: You can use WebDriver to get the browser to a specific palce. 01:52:28 garykac: Can it check the OS state? 01:52:31 simonstewart: No 01:53:14 simonstewart: *proposes a mixture of WebDriver + native OS code* 01:53:30 simonstewart: If this was easy, we'd have done it. 01:53:35 garykac: I want to reuse as much as I can. 01:53:59 garykac: Where are the live, valid sets of tests? 01:54:43 wilhelm: web-platform-tests 01:54:51 simonstewart: If you have suggestions for teh API, given our constraints. 01:55:05 simonstewart: *lists currrent API* 01:55:14 garykac: Everything else comes from that. 01:55:28 simonstewart: Using PUA from Unicode to specifiy other characters. 01:55:33 ... Return key, etc. 01:55:39 ... Based on meaning. 01:55:47 garykac: DOM3 har those based on meaning. 01:56:07 ... UI events has keynames based on the physical key. 01:56:34 ... This key, Q, on English keyboard, is the same no matter which keyboard layout you have. 01:56:52 http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/Keys.html 01:57:02 ... If you have to give the name to a physical key, use UI events. 01:57:36 simonstewart: *refers to the key list from the implementation* 01:57:40 UI Events: http://www.w3.org/TR/uievents/ 01:58:00 https://code.google.com/p/selenium/wiki/JsonWireProtocol#/session/:sessionId/element/:id/value 01:58:42 garykac: Is this all? 01:58:45 simonstewart: Non-printable. 01:59:03 garykac: No location field to indicate it's from the keypad? 01:59:14 MarcFisher: Just a string. 01:59:14 glenn has joined #testing 01:59:46 garykac: *ask about specific keys in the list* 01:59:52 MarcFisher: suggestions for improving the API are welcome. 02:00:08 garykac: We've worked on speccing the list of keys in DOM3. 02:00:55 mizuman has joined #testing 02:01:24 DOM3 Events: http://www.w3.org/TR/DOM-Level-3-Events/ 02:01:27 http://www.w3.org/TR/DOM-Level-3-Events/#key-value-tables 02:01:30 Section 6.3 02:01:31 garykac: Section 6.3 02:01:48 garykac: I'm going to be merging the UI events stuff into this. 02:01:55 ... SO that there is one canonical document. 02:01:56 mizuman has joined #testing 02:02:12 garykac: UI events provides more info on how awful keyboards are... 02:02:27 ... This maps to Windows virtual keys. 02:02:35 garykac: Assumes we have a location field. 02:02:41 ... This is only the non-printable. 02:03:03 garykac: Separator? 02:03:19 garykac: This also includes old keys. 02:03:30 garykac: Media keys. 02:04:24 garykac: You may want to refer to this and say "this is where we get our values from". 02:04:31 garykac: You may need location feels. 02:04:40 s/feels/fields 02:05:11 garykac: This completely ignores Android + FirefoxOS, which we also need. 02:05:44 simonstewart: So far we haven't needed most of these keys... 02:06:26 garykac: Thank you for the information! 02:06:34 simonstewart: I've learned a lot about the horror that is keyboards. 02:06:52 glenn_ has joined #testing 02:07:00 MichaelC has joined #testing 02:07:22 simonstewart: Reviews of our sections on this would be very helpful. 02:08:14 ACTION: Add scrollwheel support 02:08:58 Topic PFWG 02:09:05 Michael Cooper, staff contact 02:09:11 @@, observer 02:09:17 @@, with IBM 02:10:06 s/Topic/Topic: PFWG 02:10:16 taocai has joined #testing 02:10:28 MichaelC: A number of us were here at TTWF. Some of this may be familiar. 02:10:37 ... We want to sync the accessibility testing with other testing. 02:10:43 ... THis is an iteration of these efforts. 02:10:57 ... IN the past few days we've got a better understanding. 02:11:22 ... Suggested agenda items: 02:11:43 ... Developing accessbility tests from the point of view of a developer who wants to ensure accessibility in the UA. 02:11:48 ... We test tools, content. 02:12:10 .. We talked about how WebDriver can be used to test web pages in UA to see if accessibility features work as intended. 02:12:19 ... May depend on things from WebDriver. 02:12:29 ... How can we use WD to test accessibility tests? 02:12:39 ... We develop ARIA, which could be tested that way. 02:13:06 ... Considering accessibility tests that can be done like the testharness.js, reftests... 02:13:19 .. If we wish to add tests? 02:13:24 wilhelm: tobie's department. 02:13:40 MichaelC: Mapping accessibility APIs to testing... 02:13:45 ... Accessibility vs DOM. 02:14:18 Janina: The best defined are the UA interfaces to accessibility API. 02:14:22 .. On their way to Rec. 02:14:35 ... We're looking at that approach for basis for furhter work. 02:14:54 MichaelC: What level of shared knowledge do we have? 02:15:27 simonstewart: *describes the purpose and functionality of WebDriver* 02:17:32 glenn has joined #testing 02:17:33 @@: JS in the browser? 02:17:35 simonstewart: No. 02:17:56 @@: Are you using Windows automation? 02:18:00 simonstewart: It depends. 02:18:22 ... We need to be able to test browsers without window having focus. 02:18:28 ... We should be able to background the window. 02:18:47 ... (Describes the three types of events and their implementations.) 02:20:50 Cynthia: Assisstive technologies use OS accessibility layers to interact with f.x. UA. 02:21:13 ... Old MS API, IBM API, newer MS Windows automation... 02:21:40 ... Windows UI automation was designed with a couple of ideas that are different. 02:21:50 ... To be used as a test driver in addition to accessibility. 02:21:56 ... Combine patterns. Invoke, selection. 02:22:08 ... "This is an invokable thing, not just a button" 02:22:17 ... You can combine patterns. 02:23:08 MichaelC: The accessibility APIs do similar things, but vary between OSes. 02:23:11 darobin has joined #testing 02:23:25 Janina: Linux accessibility layer used for testing Linux desktop. 02:23:42 What was the name of the linux project that uses accessibility testing? 02:23:52 zcorpan has joined #testing 02:24:18 Cynthia: You're doing platform-specific work. 02:24:24 simonstewart: Yes, but hidden behind the APIs. 02:25:03 Cynthia: We look at the markup in ARIA or HTML and our document, "this document should have these properties".