{"action":"created","issue":{"url":"https://api.github.com/repos/facebook/react-native/issues/9942","repository_url":"https://api.github.com/repos/facebook/react-native","labels_url":"https://api.github.com/repos/facebook/react-native/issues/9942/labels{/name}","comments_url":"https://api.github.com/repos/facebook/react-native/issues/9942/comments","events_url":"https://api.github.com/repos/facebook/react-native/issues/9942/events","html_url":"https://github.com/facebook/react-native/pull/9942","id":177395528,"number":9942,"title":"[e2e-testing][Appium] Adding support for android:id","user":{"login":"jsdevel","id":2605980,"avatar_url":"https://avatars.githubusercontent.com/u/2605980?v=3","gravatar_id":"","url":"https://api.github.com/users/jsdevel","html_url":"https://github.com/jsdevel","followers_url":"https://api.github.com/users/jsdevel/followers","following_url":"https://api.github.com/users/jsdevel/following{/other_user}","gists_url":"https://api.github.com/users/jsdevel/gists{/gist_id}","starred_url":"https://api.github.com/users/jsdevel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jsdevel/subscriptions","organizations_url":"https://api.github.com/users/jsdevel/orgs","repos_url":"https://api.github.com/users/jsdevel/repos","events_url":"https://api.github.com/users/jsdevel/events{/privacy}","received_events_url":"https://api.github.com/users/jsdevel/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/facebook/react-native/labels/CLA%20Signed","name":"CLA Signed","color":"e7e7e7"},{"url":"https://api.github.com/repos/facebook/react-native/labels/Core%20Team","name":"Core Team","color":"0052cc"},{"url":"https://api.github.com/repos/facebook/react-native/labels/GH%20Review:%20review-needed","name":"GH Review: review-needed","color":"fbca04"},{"url":"https://api.github.com/repos/facebook/react-native/labels/Import%20Failed","name":"Import Failed","color":"e11d21"}],"state":"open","locked":false,"assignee":{"login":"mkonicek","id":346214,"avatar_url":"https://avatars.githubusercontent.com/u/346214?v=3","gravatar_id":"","url":"https://api.github.com/users/mkonicek","html_url":"https://github.com/mkonicek","followers_url":"https://api.github.com/users/mkonicek/followers","following_url":"https://api.github.com/users/mkonicek/following{/other_user}","gists_url":"https://api.github.com/users/mkonicek/gists{/gist_id}","starred_url":"https://api.github.com/users/mkonicek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mkonicek/subscriptions","organizations_url":"https://api.github.com/users/mkonicek/orgs","repos_url":"https://api.github.com/users/mkonicek/repos","events_url":"https://api.github.com/users/mkonicek/events{/privacy}","received_events_url":"https://api.github.com/users/mkonicek/received_events","type":"User","site_admin":false},"assignees":[{"login":"mkonicek","id":346214,"avatar_url":"https://avatars.githubusercontent.com/u/346214?v=3","gravatar_id":"","url":"https://api.github.com/users/mkonicek","html_url":"https://github.com/mkonicek","followers_url":"https://api.github.com/users/mkonicek/followers","following_url":"https://api.github.com/users/mkonicek/following{/other_user}","gists_url":"https://api.github.com/users/mkonicek/gists{/gist_id}","starred_url":"https://api.github.com/users/mkonicek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mkonicek/subscriptions","organizations_url":"https://api.github.com/users/mkonicek/orgs","repos_url":"https://api.github.com/users/mkonicek/repos","events_url":"https://api.github.com/users/mkonicek/events{/privacy}","received_events_url":"https://api.github.com/users/mkonicek/received_events","type":"User","site_admin":false}],"milestone":null,"comments":111,"created_at":"2016-09-16T10:43:17Z","updated_at":"2016-10-26T16:20:19Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/facebook/react-native/pulls/9942","html_url":"https://github.com/facebook/react-native/pull/9942","diff_url":"https://github.com/facebook/react-native/pull/9942.diff","patch_url":"https://github.com/facebook/react-native/pull/9942.patch"},"body":"* Calling view.setId() with the matching resource-id of an id found in R.class when BaseViewManager.setTestId is called.\r\n* Adding TestIdUtil in common to store mappings for testID with attributed views and their original react tag value.\r\n* Changing the signature for Event Classes to require the View instead of the viewTag.  This reduces the number of locations where TestIdUtil.getOriginalReactTag is called.\r\n* Overriding BaseViewManager.onDropViewInstance to perform TestIdUtil mapping cleanup.\r\n* This closes #9777.\r\n* In order for this to work properly, an `id` resource needs to be manually added to `android/app/src/main/res/values/ids.xml`.  Here's the contents of that file:\r\n\r\n```xml\r\n<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n<resources>\r\n<item name=\"something\" type=\"id\"/>\r\n</resources>\r\n```"},"comment":{"url":"https://api.github.com/repos/facebook/react-native/issues/comments/256401190","html_url":"https://github.com/facebook/react-native/pull/9942#issuecomment-256401190","issue_url":"https://api.github.com/repos/facebook/react-native/issues/9942","id":256401190,"user":{"login":"mkonicek","id":346214,"avatar_url":"https://avatars.githubusercontent.com/u/346214?v=3","gravatar_id":"","url":"https://api.github.com/users/mkonicek","html_url":"https://github.com/mkonicek","followers_url":"https://api.github.com/users/mkonicek/followers","following_url":"https://api.github.com/users/mkonicek/following{/other_user}","gists_url":"https://api.github.com/users/mkonicek/gists{/gist_id}","starred_url":"https://api.github.com/users/mkonicek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mkonicek/subscriptions","organizations_url":"https://api.github.com/users/mkonicek/orgs","repos_url":"https://api.github.com/users/mkonicek/repos","events_url":"https://api.github.com/users/mkonicek/events{/privacy}","received_events_url":"https://api.github.com/users/mkonicek/received_events","type":"User","site_admin":false},"created_at":"2016-10-26T16:20:19Z","updated_at":"2016-10-26T16:20:19Z","body":"> Ids should be in the xml file so R.class is generated correctly; otherwise, uiautomatorviewer and appium can't associate it to the testID.\r\n\r\nCan you clarify what you mean by \"associate it to the testID\"? If the ids (e.g. \"login_button\") are set at runtime only, and in Appium we do a lookup for \"login_button\", are you saying that Appium can't find the element? I'd expect UI automator to do a simple lookup similar to `findViewById` at runtime? Does Appium need `R.class` as well and why?"}}
{"actor":{"display_login":"mkonicek"}}