?????????????UI????????????????????????????????????????
??????????????????????滹???????????????????????????????Щ????????????????д????????????
?????????λ????????????????????
??????????????????????????????????????????
??????????????????????????????????????????????????????????
?????????????????????????????????????????????е?????????????????μ??
????????????????????£?
????????????????
????????????????????????
??????????????????е????????????
???????????????????????ɡ?
????????????????????????????????????????????????????????????????????????е??????????????????????????????????????????????????
?????????????????????????????????????????????????????????????????????????
???????????λ????????????????????????????????
??????????????????У??????????????????????????????????κ???????
????????????????????????????????????????е?uiautomatorviewer??????
??????appium???λ????????????Щ???????????????????????????????????漸????????????????webdriver??appium??DSL??????????????????п???????????????λ??
?????????webdriver???????????????3???????????λ???
????find by "class" (i.e.?? ui component type??andorid???????android.widget.TextView)
????find by "xpath" (i.e.?? an abstract representation of a path to an element?? with certain constraints??????appium??xpath??????????????????)
????find by "id"(android????????resource id)
??????Mobile JSON Wire Protocol Э???ж??????????????????豸???????λ
????-ios uiautomation: a string corresponding to a recursive element search using the UIAutomation library (iOS-only)
????-android uiautomator: a string corresponding to a recursive element search using the UiAutomator Api (Android-only)
????accessibility id: a string corresponding to a recursive element search using the Id/Name that the native Accessibility options utilize.
??????appium ??client??Mobile JSON Wire Protocol?ж??????????????????????????????????
????ruby?
????find_element :accessibility_id?? 'Animation'
????find_elements :accessibility_id?? 'Animation'
????find_element :uiautomator?? 'new UiSelector().clickable(true)'
????find_elements :uiautomator?? 'new UiSelector().clickable(true)'
?????????????????????????webdriver????
????find_element id: 'resource_id'
????????ruby lib???????Щ?????????????????п?????λ????д???????
????text(value_or_index) :Find the first TextView that contains value or by index. If int then the TextView at that index is returned.
????button(value_or_index):Find the first button that contains value or by index. If int then the button at that index is returned
??????????????
????python?
???????????
????el = self.driver.find_element_by_android_uiautomator('new UiSelector().description("Animation")')
????self.assertIsNotNone(el)
????els = self.driver.find_elements_by_android_uiautomator('new UiSelector().clickable(true)')
????self.assertIsInstance(els?? list)
????el = self.driver.find_element_by_accessibility_id('Animation')
????self.assertIsNotNone(el)
????els = self.driver.find_elements_by_accessibility_id('Animation')
????self.assertIsInstance(els?? list)
???????????
??????????????driver????????
????find_element_by_accessibility_id
????find_elements_by_accessibility_id
????find_element_by_android_uiautomator
????find_element_by_android_uiautomator
?????????
????java?
???????????????????????Щ????
????findElementByAccessibilityId()
????findElementsByAccessibilityId()
????findElementByIosUIAutomation()
????findElementsByIosUIAutomation()
????findElementByAndroidUIAutomator()
????findElementsByAndroidUIAutomator()
?????????????????????????python ?? java client???????????λ??????????????ruby lib?з???????????????????????????????ruby lib??????python??java?????????????????????????