appium基础-元素定位
1)id定位 driver.find_element_by_id('android:id/button2').click() 2)name定位【根据name进行定位,对于android来说,就是text属性。说明:由于text稳定性不是很好,所以appium 1.5开始废弃了该方法。】 driver.find_element_by_name('请输入用户名').send_keys('2017') 3)class_name定位【classname定位是根据元素类型来进行定位,但是实际情况中很多元素的classname都是相同的。很鸡肋.一般情况下如果有id就不必使用classname定位。】 driver.find_element_by_class_name('android.widget.EditText').send_keys('2018') 4)相对定位【相对定位是先找到该元素的有对应属性的父元素节点,然后基于父元素进行元素定位。】 root_element=driver.find_element_by_id('com.tal.kaoyan:id/activity_register_parentlayout') root_element.find_element_by_class_name('android.widget.ImageView').click() 5)xpath定位【xpath定位是一种路径定位方式,主要是依赖于元素绝对路径或者相关属性来定位,但是绝对路径xpath执行效率比较低(特别是元素路径比较深的时候),一般使用比较少。通常使用xpath相对路径和属性定位】 fromfind_element.capabilityimportdriver fromtimeimportsleep driver.find_element_by_xpath('//android.widget.EditText[@text="请输入用户名"]').send_keys('cherry) sleep(1) #driver.find_element_by_xpath('//*[@class="android.widget.EditText"and@index="3"]').send_keys('cherry') driver.find_element_by_xpath('//android.widget.EditText[@index="3"]').send_keys('cherry') sleep(1) #driver.find_element_by_xpath('//android.widget.Button').click() driver.find_element_by_xpath('//*[@class="android.widget.Button"]').click() 6)List定位【前面我们提到相同的classname属性值元素无法区分定位,现在使用List定位来解决这个问题。List定位首先是使用find_elements_by_XX获取一组相同的id或class等属性的元素,然后使用数组下标来区分标记不同元素进行相关操作】 images=driver.find_elements_by_id('com.tal.kaoyan:id/item_image') #images=driver.find_elements_by_class_name('android.widget.ImageView') images[1].click() #images[3].click() [#driver.find_elements_by_id('com.tal.kaoyan:id/item_image')[1].click()] 7)UIAutomator定位 driver.find_element_by_android_uiautomator\ ('new UiSelector().text("请输入用户名")').send_keys('51zw2555') driver.find_element_by_android_uiautomator\ ('new UiSelector().resourceId("com.tal.kaoyan:id/login_password_edittext")').send_keys('888888') driver.find_element_by_android_uiautomator\ ('new UiSelector().className("android.widget.Button")').click()
posted on 2019-07-13 12:40 cherry_ning 阅读(181) 评论(0) 收藏 举报
浙公网安备 33010602011771号