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') 

3class_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)    收藏  举报

导航