01:05:21 RRSAgent has joined #testing 01:05:21 logging to http://www.w3.org/2013/11/11-testing-irc 01:06:10 a12u has joined #testing 01:06:23 minami has joined #testing 01:06:40 ChenJi has joined #testing 01:06:53 Meeting: Browser testing and tools WG, WebDriver spec 01:06:55 TieSun has joined #testing 01:07:01 Chair: Wilhelm 01:07:07 Scribe: MikeSmith 01:07:16 ScribeNick:: MikeSmith 01:07:29 Agenda: http://www.w3.org/wiki/WebDriver/2013-TPAC-F2F 01:07:48 Here we go! 01:07:52 cwdoh has joined #testing 01:08:10 Topic: Intro 01:08:23 wilhelm giving introductory comments 01:08:25 testing has joined #testing 01:08:36 jwjang has joined #testing 01:08:47 ijongcheol has joined #testing 01:08:57 simonstewart is here, gives self-intro 01:09:03 jwon has joined #testing 01:09:09 simonstewart is from Facebook 01:09:20 Lei_WANG has joined #testing 01:09:24 brucesolo has joined #testing 01:09:39 AutomatedTester David Burns frmo MOzilla 01:09:41 dom has joined #testing 01:09:48 Mark Fischer from Google 01:10:01 @@ from GOogle, working WebDriver 01:10:08 @@ From SkPlanet 01:10:22 Mr. Lee from Korea, @@ COmmunications 01:10:33 @@ from Korea 01:10:35 first guy, His name is hyunsuk shin. 01:10:47 @@ From Shanghai, Baidu 01:10:55 Denis from W3C 01:11:06 Isobe-san from Japan 01:11:19 Kawada-san from Japan 01:11:31 Minami-san from Toshia 01:11:39 Journalist 01:11:42 @@ 01:11:48 @@ from @@ 01:11:58 Wong Wei from Beijing 01:11:59 kennyluck_ has joined #testing 01:12:06 Erika from Microsoft 01:12:16 @@ from Tencent 01:12:20 @@ from Tencent 01:12:26 @@ 01:12:35 zcorpan has joined #testing 01:13:03 some other folks who are observers from Korea 01:13:24 Kim from Korea 01:13:43 @@ from Microsoft china 01:13:58 Mr. Lee from CSI 01:14:31 Topic: What the hell are we working on and how far along are we? 01:14:50 simonstewart describes the purpose of the WEbDriver API 01:15:04 ... which is it automate the behavior of a user 01:15:23 ... runs out of process 01:15:37 ... and runs outside of the JavaScript sandbox 01:15:46 dom_ has joined #testing 01:15:46 ... and runns "outside the glass" 01:15:56 ... can do cross-site testing, for example 01:16:05 Miao has joined #testing 01:16:19 ... and can test things that are not possible to test just with JavaScript 01:16:28 RRSAgent, make minutes 01:16:28 I have made the request to generate http://www.w3.org/2013/11/11-testing-minutes.html MikeSmith 01:17:26 simonstewart: started with Microsoft driver, then Opera driver, and Chrome driver, with some preliminary support for Android 01:17:58 ... and MOzilla, and also btw, Mozilla has a project called Marionette 01:18:05 Started with Selenium WebDriver, which is home of the current IEDriver and firefoxdriver 01:19:02 simonstewart: last f2f we had was in Boston 01:19:29 ling_chen has joined #testing 01:20:12 simonstewart: we have various language bindings 01:20:38 orange has joined #testing 01:20:40 Topic: Agenda review 01:21:01 http://www.w3.org/wiki/WebDriver/2013-TPAC-F2F 01:21:32 - Shadow DOM - Current spec API vs Future API 01:21:38 - Handling of Accelerometer 01:21:58 - Scroll to Element API 01:22:02 noriya has joined #testing 01:22:06 - Window Management 01:22:18 - Define Interactable vs Visible semantics 01:22:45 Topic: Shadow DOM 01:23:25 mark describes purpose of Shadow DOM 01:24:14 Does anyone have a spare MacBook Air video adapter? Mini-DVI to VGA, I think? 01:24:35 kimwoonyoung has joined #testing 01:24:37 kawada has joined #testing 01:24:47 i have 01:24:51 Definitely VGA. 01:24:53 sorry 01:24:57 Masahiro_ has joined #testing 01:25:00 Mac to VGa 01:25:01 ? 01:25:04 Mac to VGA 01:25:08 Yes 01:25:33 Thankyou, cwdoh! 01:25:47 mark: issue with Shadow DOM is that interacts differently in terms of how we normally do testing 01:26:07 zcorpan has joined #testing 01:26:38 Gao gives short presentation about Shadow DOM 01:27:42 hyeonseokshin has joined #testing 01:27:52 Gao: right now, we have to include a lot of verbosity in our testing code just to be able to get to Shadow DOM content 01:28:13 Interesting point about the cross-shadow DOM interactions. 01:28:26 Gao: even worse for deeply-nested shadow dom 01:28:32 Dongwon has joined #testing 01:29:08 plh has joined #testing 01:29:15 shepazu has joined #testing 01:29:16 Gao shows proposed new API, which makes the testing code look much cleaner and shorter 01:30:09 is the proposal available online for inspection? 01:30:14 Gao discusses pros and cons of new proposed api 01:30:38 sangwhan has left #testing 01:31:37 zqzhang has joined #testing 01:33:17 simonstewart: what happens when you have multiple shadow documents attached to the same shadow root? 01:33:39 mark: you get a list back 01:34:15 mark: most important thing is that a web element, once located, should continue to be usable 01:34:46 ... that's where you really get the biggest advantage in terms of the test size 01:34:54 hooney has joined #testing 01:35:25 ... the switchTo* additions are less importan 01:36:15 simonstewart: we deal with this now by stashing IDs on the equivalent of a Window 01:39:54 rhauck has joined #testing 01:40:32 simonstewart: I don't think we need switchToFrame 01:40:40 ken has joined #testing 01:41:31 Zakim, code? 01:41:39 Zakim has joined #testing 01:41:43 Zakim, code? 01:41:43 sorry, MikeSmith, I don't know what conference this is 01:42:18 sho has joined #testing 01:42:26 Zakim, call wutong 01:42:26 sorry, MikeSmith, I don't know what conference this is 01:43:18 zakim, this will be testing 01:43:18 I do not see a conference matching that name scheduled within the next hour, denis 01:43:22 zcorpan has joined #testing 01:43:37 trackbot has joined #testing 01:43:47 trackbot, start meeting 01:43:47 Sorry, but no Tracker is associated with this channel. 01:43:49 zcorpan_ has joined #testing 01:44:16 zakim, this will be test 01:44:16 I do not see a conference matching that name scheduled within the next hour, MikeSmith 01:44:44 zakim, room for 10 01:44:44 I don't understand 'room for 10', denis 01:44:47 zakim, room for 10? 01:44:49 ok, denis; conference Team_(testing)01:44Z scheduled with code 26633 (CONF3) for 60 minutes until 0244Z 01:45:11 zakim, call wutong 01:45:11 ok, denis; the call is being made 01:45:12 Team_(testing)01:44Z has now started 01:45:13 +Wutong 01:46:35 Zakim, code? 01:46:35 the conference code is 26633 (tel:+1.617.761.6200 sip:zakim@voip.w3.org), MikeSmith 01:47:36 http://www.w3.org/TR/shadow-dom/ 01:47:48 + +1.813.728.aaaa 01:47:59 ken_ has joined #testing 01:48:08 mark: similar to how content scripts work in chrome xtensions 01:48:21 Zakim, aaaa is jimevans 01:48:21 +jimevans; got it 01:49:28 wilhelm, can you please add "drag and drop of elements across frames" to the agenda? 01:49:57 simonstewart: Done. 01:50:01 Thank you 01:51:08 mizuman has joined #testing 01:52:35 simonstewart: we have decided there will be a shadow root, will have getActiveElement 01:52:49 hyeonseokshin has joined #testing 01:53:23 ... weill add an API for finding shadow roots 01:53:56 simonstewart: that was remarkably unpainful 01:54:13 ... I think that's because we don't know much about shadow dom... 01:54:34 kawada has joined #testing 01:54:45 Topic: Acceleromator 01:55:16 AutomatedTester: using the phrase Acceleromator quite loosly hear 01:55:21 s/hear/here 01:55:34 "device orientation" might be a better fit. 01:56:06 zcorpan has joined #testing 01:56:39 simonstewart: orientation of the device in 3D space 01:57:42 roll 01:57:47 http://dev.w3.org/geo/api/spec-source-orientation.html 01:59:18 ACTION: barstow start a CfC to publish LCWD of DOM Parsing and Serialization 01:59:18 Sorry, but no Tracker is associated with this channel. 01:59:30 ooops 02:00:42 RRSAgent, drop action 1 02:01:47 MikeSmith: mobile-jsonwp-spec google group 02:01:49 discussing alpha-beta-gamma vs roll-pitch-yaw 02:03:29 hooney has joined #testing 02:03:49 kawada_ has joined #testing 02:04:17 related thread: https://groups.google.com/forum/#!searchin/mobile-jsonwp-spec/stewart/mobile-jsonwp-spec/YtAIN6qYPH4/Y-b1v7QFDhcJ 02:06:52 hyeonseok has joined #testing 02:07:57 discussion about what points in maturity of other specs we start to add support in WebDriver for those specs 02:08:35 mark: not talking about shadow dom at all in the Webdriver spec would be better than what we have in the WebDriver spec now 02:09:14 wilhelm: we should move all unstable stuff to a separate draft 02:09:37 simonstewart: happy to punt shadow dom and device orientation 02:09:48 fyi http://caniuse.com/#search=orientation 02:10:06 +1 for moving 02:10:23 RRSAgent, make minutes 02:10:23 I have made the request to generate http://www.w3.org/2013/11/11-testing-minutes.html MikeSmith 02:10:36 Topic: ScrollToElement API 02:10:52 AutomatedTester: this came from some of the open-source projects 02:11:19 Who requested this again? 02:11:40 simonstewart: PageDown 02:12:03 Alexei from Selenium open-source porject brought this up 02:12:41 mark: so this API would look like, 1. find an element, then 2. scroll to it 02:13:47 what does "scroll to it" mean? scroll it to the top of the view port? the center of the view port? the bottom of the view port? something else? scroll the entire element? only the part that will fit? 02:13:54 tequila has joined #testing 02:14:02 rhauck1 has joined #testing 02:14:34 ChenJi has joined #testing 02:14:51 simonstewart: normally we say, bring the center of the element into the viewport 02:14:56 q? 02:16:06 simonstewart: we've yet to need such an API in many years 02:18:15 -jimevans 02:19:09 masahiro1 has joined #testing 02:20:06 ijongcheol has joined #testing 02:20:39 the room was in favor of not having a scroll-to-element API 02:21:53 Topic: Window management 02:22:10 AutomatedTester: this came from Alexei 02:22:25 jy has joined #testing 02:22:48 ... currently the API requires that we pass through a window handle (unique key) but we don't use it 02:22:54 simonstewart: we do use it 02:23:33 AutomatedTester: take a look at the resize command 02:25:04 discussion indicates we might have a bug in the *Driver implementations 02:25:54 s/*Driver// 02:29:25 45 minutes break 02:29:38 we will back at 11:15 local time 02:29:49 simonstewart has joined #testing 02:29:56 cwdoh has joined #testing 02:30:03 ken has joined #testing 02:30:44 mizuman has joined #testing 02:33:13 plh3 has joined #testing 02:34:26 -Wutong 02:34:27 Team_(testing)01:44Z has ended 02:34:27 Attendees were Wutong, +1.813.728.aaaa, jimevans 02:38:55 Sam_Lin has joined #testing 02:39:23 rufusding has joined #testing 02:39:32 tequila_ has joined #testing 02:40:57 taocai has joined #testing 02:43:00 myakura_ has joined #testing 02:51:37 taocai has left #testing 02:53:16 cwdoh has joined #testing 02:53:40 tequila_ has left #testing 02:54:41 kimwoonyoung has joined #testing 03:00:11 ijongcheol has joined #testing 03:03:36 cwdoh has joined #testing 03:04:45 denis has joined #testing 03:05:49 Yuanyan_Cao has joined #testing 03:08:32 simonstewart has joined #testing 03:10:57 AutomatedTester has joined #testing 03:11:48 kimwoonyoung has joined #testing 03:14:36 Sam_Lin has joined #testing 03:14:43 Hey 03:16:12 ijongcheol has joined #testing 03:16:17 kimwoonyoung has joined #testing 03:16:35 ijongcheol has joined #testing 03:17:25 ShuotaoGao has joined #testing 03:18:35 mimami has joined #testing 03:19:03 yuanyan has joined #testing 03:19:06 masahiro has joined #testing 03:20:14 rhauck has joined #testing 03:20:30 kimwoonyoung has joined #testing 03:20:46 RRSAgent, draft minutes 03:20:46 I have made the request to generate http://www.w3.org/2013/11/11-testing-minutes.html wilhelm 03:21:02 RRSAgent, make log public 03:21:22 RRSAgent, publish minutes 03:21:22 I have made the request to generate http://www.w3.org/2013/11/11-testing-minutes.html wilhelm 03:21:24 cwdoh_ has joined #testing 03:22:08 edoyle has joined #testing 03:22:53 rhauck1 has joined #testing 03:23:21 ken has joined #testing 03:25:28 rufusding has joined #testing 03:26:00 Scribe: wilhelm 03:26:06 Chair: simonstewart 03:26:20 Topic: Define interactable vs visible semantics 03:26:37 kimwoonyoung has joined #testing 03:26:38 simonstewart: We discussed this at the previous F2F. That hurt quite a lot. 03:26:44 ... We should nail this down now. 03:26:47 Sam_ has joined #testing 03:27:18 AutomatedTester: One of the things that come up regularly has to with viewport sizes, where elements end up on top of each other. 03:27:20 yuanyan has joined #testing 03:27:37 ... It's possibly just a Gecko bug. If you fire an event, it sometimes fires through an element. 03:27:51 ... Technically, it's visible. 03:27:57 simonstewart: Like the clickjacking problem? 03:27:58 AutomatedTester: Yes. 03:28:02 minami has joined #testing 03:28:05 AutomatedTester: If you tap it, it would do nothing. 03:28:12 .... When automating, it sometimes works, sometimes doesn't. 03:28:18 taocai has joined #testing 03:28:36 mizuman has joined #testing 03:28:37 ... When something has overflowed, not in same part of the DOM tree, but overlapping. 03:28:48 ... There's problems like that. 03:29:22 masahiro has joined #testing 03:29:27 (Discussion on specific case where an element is visible not not interactable.) 03:30:01 simonstewart: If you could use tab ordering to get to the element, you'd be okay. 03:30:14 mizuman_ has joined #testing 03:30:29 simonstewart: A problem that a naive implementation of most of the inputs would just find the element and send events to it. 03:30:40 ... More advanced implementation: Find the coordinates, interact with those. 03:30:49 myakura has joined #testing 03:30:53 Marc: Newer versions if Firefox does this. 03:31:10 simonstewart: FFDriver with native events does this. OS-level equivalent events. 03:31:18 AutomatedTester: Marionette gets this slightly wrong. 03:31:25 simonstewart: IEdriver does the expected thing. 03:31:59 simonstewart: I think visibility, even if obsucred by z-ordering, you're technically visible. 03:32:10 simonstewart: "If you're partly obscured, are you visible?" 03:32:20 Marc: The primary use of this is to determine if you can click something. 03:32:30 simonstewart: We have clickjacking tests for this in the Selenium test suite. 03:32:44 darobin has joined #testing 03:32:52 a12u has joined #testing 03:33:05 MikeSmith: I have jimevans on skype 03:33:09 simonstewart: It might be reasonable to go: we will do our best to interact with this element, but overlapping elements may intercept the element. 03:33:12 all set thanks 03:33:29 zqzhang has joined #testing 03:33:42 Marc: You want it to click the element you want it to click, or say it can't. 03:33:45 ... And error is fine. 03:33:57 Marc: Should we also have a predicate to check if ... 03:34:07 simonstewart: How often do you see problems with this? 03:34:17 Marc: If we take our FF tests and run them in Chrome. 03:34:22 ... Tests start failing. 03:34:34 Marc: Some of this is bad tests. 03:34:49 zqzhang has joined #testing 03:35:00 kennyluck has joined #testing 03:35:12 Marc: They wait until something is displayed, so you should be able to click something. 03:35:15 ... Not sufficient. 03:35:32 ... isInteractable? makes more sense. 03:35:37 AutomatedTester: This matches our use case. 03:35:49 AutomatedTester: (Describes this wrt. animations.) 03:36:12 simonstewart: The problem you're talking about sounds like the animation hasn't finished yet when you ask isVisible?. 03:36:35 simonstewart: THe problem is waiting for the animation to finish. Separate use case. 03:36:45 AutomatedTester: isDisplayed will say true for both cases. 03:37:09 AutomatedTester: Top one is visible and interactable. Bottom is visible, but not interactable. 03:37:20 simonstewart: ChromeDriver imeplementation makes sense. 03:38:01 Marc: You'll have to wait for element on top to be gone. 03:38:19 ... You don't care about that element. You care about the element underneath. 03:38:29 When can I click on A? 03:38:51 ... Your test should not depend on anything else than the element you care about. 03:39:07 simonstewart: Why doesn't your test author know about the covering lightbox? 03:39:31 rhauck has joined #testing 03:39:50 simonstewart: You want your tests breaking with a new, unknown lightbox. 03:39:59 rhauck has joined #testing 03:40:34 simonstewart: Something that dismisses itself should be easily detectable 03:40:53 Marc: The next time something new is added, you must update all your tests. 03:41:05 simonstewart: If it never? 03:41:10 Marc: If it never happens, you time out. 03:41:26 masahiro has joined #testing 03:41:33 abarsto has joined #testing 03:41:33 simonstewart: I'm trying to think of a case where you shouldn't need to edit your test. 03:41:48 ... I see why a new API is convenient, but not compelling... 03:42:10 simonstewart: Use case of "I don't know if my animations are finished" 03:42:42 zcorpan has joined #testing 03:43:13 simonstewart: If an element is covered by something in z-order, is it visible? 03:43:17 ... I say yes. 03:43:30 simonstewart: What if only one pixel is visible? 03:43:45 Marc: How do you deal with opacity, etc? 03:44:05 AutomatedTester: A user trying to do this: "I can see that element, it it visible" 03:44:45 AutomatedTester: If find the element, bounding box... 03:44:51 simonstewart: You'd need that for ever element in that area. 03:44:55 ... Very expensive. 03:45:23 simonstewart: CSS shapes? 03:45:25 masahiro_ has joined #testing 03:45:33 AutomatedTester: I agree. 03:45:55 AutomatedTester: On mobile, people check if something is visible. 03:46:24 Marc: They're trying to test if something is hidden by another element. 03:46:28 ... We cant do that well. 03:46:41 Marc: Screenshot diffing may be better. 03:47:01 simonstewart: Seems like a super-specialized use case. 03:47:26 AutomatedTester: Transforms are super-lightweight. 03:47:49 simonstewart: (Describing why this is still expensive.) 03:47:57 AutomatedTester: But people do it. 03:48:12 rufusding has joined #testing 03:48:12 simonstewart: I don't believe this happens as often as you think. 03:48:18 AutomatedTester: Disagrees. 03:48:24 plh has joined #testing 03:48:27 simonstewart: Then we should define this in a later version of the spec. 03:48:40 yuanyan has joined #testing 03:49:13 (Discussion on element at point.) 03:49:46 AutomatedTester: Element at point does not support opacity. 03:49:51 simonstewart: And transforms, shapes. 03:50:02 simonstewart: Do we want to add this additional complexity? Already very expensive. 03:50:11 ... To support use case of an inefficient transform. 03:50:32 simonstewart: This will be used by getText. 03:50:42 zcorpan has joined #testing 03:50:54 AutomatedTester: If we do responsvive design. Something got really big, things start overlapping as it gets smaller... 03:51:15 ... What happens in this case? 03:51:25 simonstewart: If you can scroll to it, gettext would return the content. 03:51:44 simonstewart: Done at the block level. 03:51:51 ... We have never paid attention to viewport size. 03:52:26 simonstewart: If a bit of text was visible, we would return all the text. 03:52:47 simonstewart: We are verging on having to write an AI for the visibility tests... 03:52:52 :) 03:52:54 AutomatedTester: Agreed. 03:52:57 mizuman has joined #testing 03:53:15 AutomatedTester: Your average developer will go "I don't understand why this is visible/invisible" 03:53:28 AutomatedTester: "I can see this element, it must be visible" 03:53:44 Marc: "I can't see it, it should not be visible." 03:53:59 simonstewart: It's not visible, but displayed. 03:54:42 AutomatedTester: Did we change the spec? The wording is "visibility". 03:54:50 simonstewart: We should change the section name. 03:55:15 ACTION: Rename section 10.1: determining visibility > determining displayed 03:55:15 Sorry, but no Tracker is associated with this channel. 03:55:23 trackbot, bye 03:55:23 trackbot has left #testing 03:56:18 simonstewart: Conclusion: rename section, we don't try to count all the crazy things try to do. 03:56:33 AutomatedTester: Is there a better word? 03:56:59 AutomatedTester: So many sonynyms. 03:57:07 s/sonynyms/synonyms 03:57:25 simonstewart: isDIsplayed matches people's expectations. 03:57:30 Marc: Matches CSS. 03:57:56 simonstewart: There will always be edge cases. "Opacity of 1%..." 03:58:03 ... Not adding options for fuzzy boundaries. 03:58:30 simonstewart: We want to give this part of the away spec away to some other group. For example CSS. 03:58:47 simonstewart: It touches both DOM and CSS, so they don't want to take it. 03:58:55 ... Maybe we can punt it to Accessibility? 03:59:18 ACTION: Discuss isDisplayed with Accessibility groups 03:59:34 AutomatedTester: Other issues with disabled elements in an AT. 04:00:21 simonstewart: If you have overflow hidden, and it's pushed out of its container... 04:00:53 (Discussion between jimevans and simonstewart on overflow hidden and complexity.) 04:01:22 jimevans: would you suggest any changes to isDisplayed? 04:02:08 my specific case involves elements where in an overflow: hidden, but can be scrolled using gestures a la mobile cases. 04:02:49 can't be scrolled using a mouse gesture, but can be done so via a drag gesture. 04:03:07 junliao has joined #testing 04:03:46 current implementations do not allow that element to be "displayed" 04:03:57 AutomatedTester: Easy implementation: Not displayed. 04:04:12 simonstewart: You could do a drag on a mobile. 04:04:32 Marc: Is this a sequence of scroll operations? 04:04:34 simonstewart: Yes. 04:04:44 hooney has joined #testing 04:05:14 AutomatedTester: Today, this is reported as not dispayed. 04:05:42 AutomatedTester: (Draws this concept on the whiteboard.) 04:08:06 simonstewart: For the sake of simplicity, let's keep it as it is. 04:08:19 AutomatedTester: Easy implementation is keep it. THe correct implementation is that it is displayed. 04:08:33 sho has joined #testing 04:08:39 AutomatedTester: As Marc says, you can do actions. 04:09:33 simonstewart: Conclusion: We leave is as-is. We rename the section. We must define "displayed" and "visible". 04:09:44 simonstewart: Any objections? 04:10:22 ACTION: simonstewart to define "displayed" and "visible" in the spec 04:10:53 Topic: Interactable elements 04:11:02 simonstewart: Thisis a super-expensive operation. 04:11:11 Marc: Not neccessarily. 04:11:52 (Discussion on methods to determine this.) 04:12:20 Marc: Do element at point at the point you want to click. 04:12:31 ... If that's not the element you want to click, throw an exception. 04:13:07 simonstewart: If using the advanced user interaction, you can click the element even if the center of the bounding box is covered. 04:14:40 simonstewart: You can have an usually complex objects (links) where the center of the rect is irrelevant. 04:14:43 masahiro has joined #testing 04:16:09 actions are a horrible solution, unless you have a "scroll to element" api, which we've rejected. the workaround is element.scrollIntoView, but that is an explicit bypassing of the "displayed" algorithm. 04:16:30 RRSAgent, draft minutes 04:16:30 I have made the request to generate http://www.w3.org/2013/11/11-testing-minutes.html wilhelm 04:16:59 simonstewart: I feel dirty adding isInteractable. 04:17:05 ... It should be redundant? 04:17:09 AutomatedTester: Life's not that easy. 04:17:19 yuanyan has joined #testing 04:17:42 simonstewart: FFOS seems to be the biggest driver for this... 04:17:54 tao has joined #testing 04:18:21 Marc: we use a JS predicament to check if something is clickable.. 04:18:28 the bottom line is people want to interact with elements. this sometimes requires waiting for the element to be interactable (whether that's to exist, or to be displayed, or to be in the viewport) 04:18:31 ... Checks that it is displayed, and not disabled. 04:18:49 Marc: "Can I click on this button?" 04:19:02 simonstewart: I can see why people want it. It makes me feel dirty. 04:19:06 AutomatedTester: Google brought this up last time. 04:19:21 simonstewart: It feels like a failiure somewhere else in the spec. 04:19:35 simonstewart: What's the super-tight definition of isInteractable? 04:19:37 RRSAgent, make logs public 04:19:48 Marc: May not be appropraite... 04:19:53 simonstewart: List the ways. 04:19:58 Marc: Can you send keys? 04:20:00 ... Can you click? 04:20:02 Zakim has left #testing 04:20:14 AutomatedTester: Not clickable, but you can send keys... 04:20:35 simonstewart: If you can be an active element, you can send keys to it. 04:20:36 One case for this:
04:22:15 Marc: Clickable? tappable? 04:22:34 "Clappable"? "Tickable"? 04:23:13 simonstewart: We are no longer considering keyboard input. 04:23:14 ijongcheol has joined #testing 04:23:37 ijongcheol has joined #testing 04:23:42 Marc: having a test for this allows you to avoid try, catch. 04:23:56 Marc: This is something you want to wait for. 04:24:07 simonstewart: How would we define it? 04:24:19 if click would throw, return false? 04:24:34 simonstewart: Needs to be done with reference to click and tap. 04:24:48 Marc: How does ChromeDriver do this? 04:25:16 Dongwon has joined #testing 04:25:32 ShuotaoGao: We use an item to function to determine the position of the element. If it's covered.. 04:26:00 Marc: How do you detect if it's covered? 04:26:00 ? 04:26:01 Relevant part of the spec: https://dvcs.w3.org/hg/webdriver/raw-file/tip/webdriver-spec.html#clicking 04:26:09 ijongcheol has joined #testing 04:26:28 by some other elements and it is not clickalbe, it returns false. 04:26:51 ShutaoGao: I can check.. 04:27:07 (Scribe is having some network issues. Missed part of the discussion here.) 04:27:26 simonstewart: We would be modifying our definiton of interactable, which is already in the spec. 04:28:01 simonstewart: If the intention is to support your use cases, we can't ignore pointer events. 04:28:15 ... You'd need a list of all elements ordered by Z-order. 04:28:29 Marc: And then check which one would get the click. 04:28:40 Marc: Doesn't sound that hard... The browser must be doing something? 04:28:59 AutomatedTester: I don't think there's an exposed API... 04:29:30 AutomatedTester: Not implementable? 04:30:53 Marc: CSS pointer events is the one causing us problems... 04:31:11 ken has joined #testing 04:31:42 simonstewart: Life isn't easy! 04:31:50 AutomatedTester: Should we do the easy thing or the right thing? 04:31:55 simonstewart: We did the easy thing with displayed. 04:32:10 ... Because we'd already hit an incredibly complex situation. 04:32:14 simonstewart: We should do the right thing here. 04:32:25 ... Our users would be upset and annoyed. 04:32:31 ... (if not) 04:32:41 AutomatedTester: I need to talk with the graphics and layout team. 04:32:52 simonstewart: Can you chase them down during lunch? 04:32:54 AutomatedTester: I can try. 04:33:23 Topic: Lunch! 04:33:32 mizuman has joined #testing 04:33:34 We will reconvene at 14:00. 04:33:49 (Lunch is extra long to allow for informal discussions.) 04:34:27 simonstewart has joined #testing 04:34:55 cwdoh has joined #testing 04:35:03 Automate_ has joined #testing 04:35:55 simonstewart has joined #testing 04:46:14 yuanyan has joined #testing 05:21:01 ijongcheol has joined #testing 05:21:34 cwdoh has joined #testing 05:25:05 zcorpan has joined #testing 05:29:56 zcorpan has joined #testing 05:32:34 abarsto has joined #testing 05:32:54 ken has joined #testing 05:33:50 kimwoonyoung has joined #testing 05:34:21 ken has joined #testing 05:34:21 abarsto has joined #testing 05:35:56 a12u has joined #testing 05:36:57 rhauck has joined #testing 05:37:12 rhauck1 has joined #testing 05:37:18 plh has joined #testing 05:38:13 myakura has joined #testing 05:38:33 dom has joined #testing 05:39:05 kennyluck has joined #testing 05:40:50 AutomatedTester has joined #testing 05:42:54 heycam: I should have looked at the spec http://dev.w3.org/csswg/cssom-view/#extensions-to-the-document-interface 05:43:20 there is a specific note on pointer events 05:43:31 thanks again for the help, you made my day! 05:44:00 denis has joined #testing 05:44:08 mizuman has joined #testing 05:44:13 masatakayakura has joined #testing 05:44:15 simonstewart has joined #testing 05:44:47 yuanyan has joined #testing 05:45:13 ken_ has joined #testing 05:45:48 rhauck has joined #testing 05:46:27 AutomatedTester, great :) 05:47:39 edoyle has joined #testing 05:53:30 ijongcheol has joined #testing 05:55:43 kennyluck has joined #testing 05:56:40 Dongwon has joined #testing 05:58:23 darobin has joined #testing 06:00:32 simonstewart has joined #testing 06:01:43 AutomatedTester has joined #testing 06:01:53 masatakayakura has joined #testing 06:02:11 _win 16 06:02:49 ken has joined #testing 06:03:27 ken has joined #testing 06:03:32 zqzhang_ has joined #testing 06:04:54 minami has joined #testing 06:05:08 Sam_ has joined #testing 06:07:09 kimwoonyoung has joined #testing 06:07:53 taocai has joined #testing 06:07:56 darobin has joined #testing 06:08:10 Scribe: wilhelm 06:08:24 AutomatedTester has joined #testing 06:08:34 Topic: Interactable 06:08:41 simonstewart: Is what we discussed implementable? 06:08:46 AutomatedTester: Short answer: yes. 06:08:54 cssom view model spec 06:08:55 mizuman has joined #testing 06:08:59 ... We can see if an element is interactable from elementfrompoint. 06:09:09 AutomatedTester, others imput to https://etherpad.mozilla.org/MeHiumCufk welcome 06:09:21 simonstewart: That reference is in a non-nomrative section. 06:09:21 http://dev.w3.org/csswg/cssom-view/#extensions-to-the-document-interface 06:09:26 ... Is there a normative section? 06:09:37 ijongcheol has joined #testing 06:09:55 AutomatedTester: It does a few checks on where X and Y is. 06:10:01 AutomatedTester has joined #testing 06:10:10 ... When we do this, the elmentfrompoint we're looking for is the center. 06:10:18 simonstewart: Not neccessarily the center. 06:10:23 AutomatedTester: Well, some sort of rect. 06:10:27 ShuotaoGao has joined #testing 06:10:33 AutomatedTester: If X or Y is negative, it will return null. 06:10:57 AutomatedTester: (Quouting spec.) 06:11:09 Marc: Is hit testing defineD? 06:11:14 AutomatedTester: There is no definition here. 06:11:27 hit testing is not defined 06:11:33 myakura has joined #testing 06:12:11 zcorpan: Are you busy in a meeting now? Would you be interested in dropping by the WebDriver meeting on this topic? (c: 06:12:53 i guess i could drop by 06:13:06 \o/ 06:13:41 Second floor, Browser Testing and Tools. Wutong hall. 06:14:39 AutomatedTester: Do we want to force a scroll? 06:14:56 ... Our spec is where we want to go, not where we are now. 06:15:32 (Discussion on whether we'd force a scroll) 06:15:50 Marc: Infinite scroll. Don't scroll if you don't have to. 06:16:06 simonstewart: Don't ask if an element is interactable if you don't want to scroll.. 06:16:44 AutomatedTester: One of the things we want to figure out with WebDriver is whether an element is interactable. 06:16:53 ... Can a user click or interact with element? 06:17:05 ... Can we just use elementfrompoint here? 06:17:20 darobin_ has joined #testing 06:17:21 zcorpan: Hit testing isn't defined in the spec yet. 06:17:36 s/the/any/ 06:18:02 ... There is also a quirk in the elementfrompoint API. If you click outside the root element, it will return the root element. 06:18:15 Marc: That's not a problem for us. 06:18:49 Marc: The API is that the user finds a node and wants to click it. We want to verify that the click will hit that node, and not an element further up in the z-index. 06:19:05 simonstewart: The user may want to wait until the element they want to click is available to be clicked. 06:19:17 simonstewart: There's also the case of a transparent div on top. 06:19:43 zcorpan: You should be able to use elementfrompoint for this. 06:20:11 cwdoh has joined #testing 06:20:13 simonstewart: (Quotes non-normative note on elementfrompoint.) 06:20:29 zcorpan: The normative part is in the algorithm itself. 06:21:04 simonstewart: What if I was insane and used an absolutely positioned iframe over an element? 06:21:24 zcorpan: I haven't tested that. 06:21:56 zcorpan: You wouldn't be able to return an element in the iframe. CORS. 06:22:48 zcorpan: X/Y is based on the viewport. There is a proposal for basing it on the document. 06:23:03 AutomatedTester: Gecko has this. Not exposed. 06:23:27 zcorpan: If there is a use case and implementor interest, we can just spec it. 06:23:29 cwdoh has joined #testing 06:23:31 simonstewart: We would use it. 06:23:45 zcorpan: I can see that it can make sense to use document coordinates. 06:23:46 orange has joined #testing 06:23:50 AutomatedTester: Who raised the issue? 06:23:57 zcropan: I can't remember. Probably in bugzilla. 06:24:06 yuanyan has joined #testing 06:24:25 plh has joined #testing 06:25:05 simonstewart: We have an API called isdisplayed. (Describes the feature.) 06:25:14 simonstewart: It is an incredibly complcated algorithm. 06:25:28 simonstewart: Particularly with overflow:hidden;, 3D transforms, etc. 06:25:49 simonstewart: Is there anything in CSSOM we can use? 06:25:57 zcropan: Not right now. 06:26:04 zcorpan: What is the use case? 06:26:23 simonstewart: (Describes how a web application test would use isvisible.) 06:26:53 tao has joined #testing 06:27:27 zcorpan: For extending CSSOM, we need a use case for authors. 06:27:41 simonstewart: (Points to page visibility spec.) 06:27:43 sho has joined #testing 06:28:08 AutomatedTester has joined #testing 06:28:12 AutomatedTester: If an element is not visible, you can remove elements from DOM for performance. 06:28:46 zcropan: It would be good to write down the use case and send to the list or in a bug. 06:29:12 ACTION: Send an email to www-style describing the use case for our visibility check 06:30:12 ACTION: Request elementfrompoint with a DOM relative coordinate instead of a viewport relative coordinate 06:31:21 (Discussion on using elementfrompoint as a tool to determine visibility.) 06:32:49 AutomatedTester has joined #testing 06:32:53 Sam_ has left #testing 06:32:58 zcorpan has joined #testing 06:33:15 shepazu has joined #testing 06:33:34 ISL has joined #testing 06:33:49 Marc: If you have a partially included element, and use elementfrompoint, it could say it's not displayed. 06:34:04 Marc: We'll end up with a greater amout of inconsistency. 06:34:18 ... It'll depend entirely on whether the center pixel is covered up. 06:34:22 cwdoh has joined #testing 06:34:27 simonstewart: We are definiing what these things are. We could add additional things. 06:34:39 ... Maybe not just the center pixel of any of the client rects visible. 06:34:55 ... Compass: N, NE, E, ... Are any of those visible? 06:35:20 Marc: You'd still get pathological cases. 06:35:24 simonstewart: We already have those. 06:35:39 mizuman has joined #testing 06:35:51 ken has joined #testing 06:36:09 Marc: Right now, we have good locality on where the pathologicality comes from. 06:36:12 miao_cesi has joined #testing 06:36:17 Marc: Losing the locality is what bothers me. 06:36:29 ken has joined #testing 06:37:14 Marc: An overlaying element could be 0% opaque and block the events, or 100% opaque and not block the events. 06:37:22 simonstewart: I'd like to simplify... 06:37:44 simonstewart: It's hard to escape having interactable and displayed... 06:38:03 ... If we could define displayed in terms of interactable, it would be okay. 06:38:12 Marc: They are about two different devices. 06:38:29 Marc: Displayed is about the video. Interactable is about the mouse and input. 06:38:38 ... Difference is to be expected. 06:38:43 simonstewart: Mjeeh. 06:38:47 meh 06:39:09 AutomatedTester: I don't see interactable and displayed as ugly in the spec. 06:39:30 simonstewart: Let's make a decision. 06:40:04 http://dev.w3.org/csswg/cssom-view/#extensions-to-the-document-interface 06:40:16 ... We add isInteractable with a non-normative note that it should be based on elementfrompoint. 06:40:25 Marc: I'd like it to have a different name. 06:40:40 simonstewart: Hit test. 06:40:44 simonstewart: isHittable? 06:41:23 ACTION: Create the API for isInteractable and document it 06:41:36 ACTION: Come up with a better name than isInteractable 06:42:25 AutomatedTester will do the above two actions. 06:42:54 Topic: Drag and drop of elements across frames 06:43:22 simonstewart: "Will elements retain identifier across frames?" 06:43:53 simonstewart: There isn't a cross-platform accessibilty tree that's shared by ... anything. 06:44:24 simonstewart: Use case: Doing an advanced user interaction dragging an element from document A to document B. 06:44:41 simonstewart: Intuitively, this should work without requring switching frame. 06:44:47 does this mean the elements will not retain the identifier across frames? 06:45:06 zcorpan_ has joined #testing 06:45:21 AutomatedTester: Not sure. 06:45:40 simonstewart: I would expect some sort of event ... 06:45:57 AutomatedTester: Can you drag elements from document A to an iframe? 06:46:06 AutomatedTester: Possible sandboxing issues. 06:46:32 simonstewart: You can drag elements between frames as long as they are in the same domain. 06:47:37 The elements should retain the identifier since the system is responsible for manging these things. 06:48:16 ISL: Do you mean the ID assigned by webdriver, or the value of "element.id"? 06:48:24 Presumably the former? 06:48:51 yes, the id assigned by webdriver. 06:49:36 simonstewart: The id of the element must change as a new element is created in the other document. 06:49:48 Marc: The element would also exist in the first document. 06:49:50 ken has joined #testing 06:50:09 AutomatedTester: If it's going between documents, it would presumably do createELement.. 06:50:14 http://www.bluestudios.co.uk/blog/sandbox/iframe/iframe.html 06:52:00 AutomatedTester: It deletes the element from page A and creates it on page B. 06:52:31 I think the matter is that how system manages this. It does matter if the id might be changed when across frames. 06:52:37 my opinion. 06:52:37 tao has joined #testing 06:53:01 doesnt* 06:53:03 mizuman has joined #testing 06:53:26 simonstewart: It is designed to be implented: drag from this element to this element. It would give you the coordinates. 06:53:54 Marc: Targeting the dragend is the difficult part. 06:53:55 simonstewart: Yes. 06:54:16 simonstewart: You've got a reference to an element in document A and document B. 06:54:45 ... You'll get an exception. 06:54:52 Marc: Switch to frame is a pain. 06:55:05 ijongcheol has joined #testing 06:55:06 simonstewart: It makes the implementation a lot more complex. 06:55:20 Marc: Throw one layer of abstraction above it. 06:55:31 ken_ has joined #testing 06:55:33 it must be very complex. 06:56:00 kawada has joined #testing 06:56:03 Marc: The top-level map would never relase those elements? 06:56:08 Marc: I'm not sure I'd worry about that. 06:56:16 yuanyan has joined #testing 06:56:21 ... If it isn't runinng for a long time, who cares? 06:56:37 simonstewart: On mobile, you'll exhaust the memory faster. 06:57:21 simonstewart: I worry about the implementation. How do you do this without leaking? 06:57:31 This is what i've mentioned, the system should handle this. 06:57:41 simonstewart: Element ID should be an opaque string. 06:57:54 Marc: we could incorporate the window ID into the element ID. 06:58:15 simonstewart: It's just a string. 06:58:34 Marc: WebDriver implementors can give it meaning. 06:58:38 kennyluck has joined #testing 06:58:55 AutomatedTester: Mozilla can't do this. Firefox OS: One window, many frames. 06:59:01 yuanyan has joined #testing 06:59:27 simonstewart: Suggestion is: You can maintain a mapping of these prefixes lead to this document... 06:59:45 ... Every time you need an element ID, you cycle through the documents. 06:59:54 AutomatedTester: Sounds very expensive. 06:59:59 Marc: you'd start with the current window. 07:00:03 ... 99% of the time, it would be fine. 07:00:25 Agree with simonstewart, if this algorithm is well designed. 07:00:49 simonstewart: (Draws the concept on the whiteboard.) 07:02:29 denis has joined #testing 07:02:50 ... (still drawing and explaining.) 07:03:15 AutomatedTester: It will still be relatively expensive. 07:03:19 Marc: Same expensive in memory. 07:03:29 ... Will burn more CPU. 07:03:56 simonstewart: Even with 100 apps... 07:04:12 mizuman has joined #testing 07:04:14 simonstewart: 5 frames in each. 500 iframes! 07:04:20 ... Hashmap of some sort. 07:04:40 ... You're running at 500Mhz+. 2-3ms for the whole operation. 07:05:04 Marc: Someone who wanted to optimize this could encode a window ID into the element ID. 07:05:36 AutomatedTester: Trying to think of worst case scenario on a low-end device. 07:05:42 it could cause some confusions by ecnoding two ids in the same. 07:05:47 ijongcheol has joined #testing 07:06:00 kimwoonyoung has joined #testing 07:06:17 simonstewart: The element ID is an opaque string. 07:06:29 Marc: If it's a really bad implementation, we alrady have that problem... 07:06:32 the system might need a mechanism to manage these two. 07:07:10 AutomatedTester: (Points to whiteboard, explaining.) 07:07:31 simonstewart: If someone has a crap implementation, there's not much we can do for them. 07:07:57 ... If they want to make a more efficient implementation, by sending back some info in the element ID, that's fine as well. 07:07:59 cwdoh has joined #testing 07:08:11 agree. 07:08:13 AutomatedTester: There are ways of doing it. 07:08:30 simonstewart: There are very few implementations of the remote end. 07:08:39 Marc: Fewer than a dozen. 07:09:03 simonstewart: Performance is a matter for the implementor. 07:09:42 yes, the algorithm matters in this discussion. 07:09:45 simonstewart: We can do this in an efficient way, that does not cause memory leaks. 07:09:50 mizuman_ has joined #testing 07:10:00 ISL? How so? 07:10:28 We've not specified at any point how remote ends look up element IDs and map them to elements 07:10:48 (Further discussion and whiteboard explainations of possible implementations.) 07:11:26 edoyle has joined #testing 07:12:02 ijongcheol has joined #testing 07:13:31 cwdoh_ has joined #testing 07:15:56 Automate_ has joined #testing 07:18:04 simonstewart: Conclusion: All interaction with elements can only be done if the frame is the active frame. 07:18:10 ... Which is basically what we have now in the spec. 07:18:34 Topic: Pause 07:18:38 We reconvene at 16:00. 07:18:54 simonstewart has joined #testing 07:20:30 mdas: yt? 07:20:41 krijnh has joined #testing 07:20:52 jgraham: hey are you on mozilla IRC? 07:21:13 AutomatedTester: I can be 07:21:16 zcorpan has joined #testing 07:21:33 Or yes, but not in this screen session 07:21:42 simonste_ has joined #testing 07:22:23 ok, could you see if fox2mike is in #developers and ask him to allow more connections to mozilla irc from 183.11.223.194 07:23:09 i think that is the right IP 07:23:30 simonste_ has joined #testing 07:24:09 ijongcheol has joined #testing 07:24:12 OK, asked 07:24:19 thanks! 07:24:53 AutomatedTester: 07:24 < glob> jgraham, shyam's probably asleep, and this isn't the right channel for that. it's best to file an IT bug (in mozilla.org :: server operations) asking for the limit to be increased 07:24:56 yuanyan has joined #testing 07:25:05 cwdoh has joined #testing 07:25:55 tao has joined #testing 07:26:34 07:24 < glob> jgraham, make sure you provide the IP address as well as the duration for the increase (eg. if it's for a work week) 07:26:52 AutomatedTester: ^ 07:26:56 simonstewart has joined #testing 07:27:06 jgraham: tell glob that I owe him a hug 07:28:29 ken has joined #testing 07:35:49 LeiWANG has joined #testing 07:36:05 denis has joined #testing 07:36:18 ken has joined #testing 07:37:39 AutomatedTester has joined #testing 07:38:05 tao has joined #testing 07:39:34 kimwoonyoung has joined #testing 07:40:51 Dongwon has joined #testing 07:41:05 Dongwon has left #testing 07:41:19 cwdoh has joined #testing 07:44:20 RRSAgent, draft minutes 07:44:20 I have made the request to generate http://www.w3.org/2013/11/11-testing-minutes.html wilhelm 07:47:52 cwdoh_ has joined #testing 07:48:00 ken has joined #testing 07:50:46 mizuman has joined #testing 07:51:43 ijongcheol has joined #testing 07:52:34 Ms2ger has joined #testing 07:55:42 AutomatedTester has joined #testing 07:56:23 simonstewart has joined #testing 07:56:27 tao has joined #testing 07:57:37 ijongcheol has joined #testing 08:00:24 simonste_ has joined #testing 08:00:39 minami has joined #testing 08:00:50 Sam_ has joined #testing 08:02:25 ShuotaoGao has joined #testing 08:05:18 denis has joined #testing 08:07:51 denis_ has joined #testing 08:08:31 ijongcheol has joined #testing 08:09:33 And we're back 08:09:40 Moin 08:12:33 Topic: Work on the spec and test suite 08:12:38 rufusding has joined #testing 08:12:54 Formal discussions are finished for today. We work on the test suite and spec. 08:13:02 We reconvene the formal discussions tomorrow at 09:00. 08:13:04 http://mxr.mozilla.org/mozilla-central/source/testing/marionette/marionette-listener.js 08:13:08 RRSAgent, draft minutes 08:13:08 I have made the request to generate http://www.w3.org/2013/11/11-testing-minutes.html wilhelm 08:13:14 http://mxr.mozilla.org/mozilla-central/source/testing/marionette/marionette-listener.js#1940 08:13:21 RRSAgent, bye 08:13:21 I see 7 open action items saved in http://www.w3.org/2013/11/11-testing-actions.rdf : 08:13:21 ACTION: Rename section 10.1: determining visibility > determining displayed [2] 08:13:21 recorded in http://www.w3.org/2013/11/11-testing-irc#T03-55-15 08:13:21 ACTION: Discuss isDisplayed with Accessibility groups [3] 08:13:21 recorded in http://www.w3.org/2013/11/11-testing-irc#T03-59-18 08:13:21 ACTION: simonstewart to define "displayed" and "visible" in the spec [4] 08:13:21 recorded in http://www.w3.org/2013/11/11-testing-irc#T04-10-22 08:13:21 ACTION: Send an email to www-style describing the use case for our visibility check [5] 08:13:21 recorded in http://www.w3.org/2013/11/11-testing-irc#T06-29-12 08:13:21 ACTION: Request elementfrompoint with a DOM relative coordinate instead of a viewport relative coordinate [6] 08:13:21 recorded in http://www.w3.org/2013/11/11-testing-irc#T06-30-12 08:13:21 ACTION: Create the API for isInteractable and document it [7] 08:13:21 recorded in http://www.w3.org/2013/11/11-testing-irc#T06-41-23 08:13:21 ACTION: Come up with a better name than isInteractable [8] 08:13:21 recorded in http://www.w3.org/2013/11/11-testing-irc#T06-41-36