控件定位
Appium Inspector
- 启动server后打开Appium Inspector
- 配置初始化信息,记得Save As的时候做好备注,方便我们以后进行使用
- 页面功能
通过控件定位定位一下密码的输入框
针对这五种组合的属性,appium提供了六种方法供我们进行定位
1
2
3- id属性
driver.find_element_by_id("com.tencent.mobileqq:id/password")
driver.find_element_by_android_uiautomator('new UiSelector().resourceId("com.tencent.mobileqq:id/password")')
1 | - xpath属性 |
1 | - class+index属性 |
1 | - content-desc定位方式 |
1 | - text属性 |
1 | - 坐标定位方式,直接对坐标进行点击操作 |
uiautomatorviewer
- 文件路径
android-sdk\android-sdk-windows\tools\uiautomatorviewer.bat
- uiautomatorviewer的使用很简单,打开app->点击uiautomatorviewer的第二个按钮->鼠标悬停到对应控件上->获取用户属性
常用操作
点击和输入
控件点击
click()
1
2ele = driver.find_element_by_android_uiautomator('new UiSelector().text("登 录")')
ele.click()坐标点击
1
2
3
4
5
6
7
8
9
10
11
12from appium.webdriver.common.touch_action import TouchAction
--------
看一下源码,传进来四个值
element: 可以传进来一个控件,如果传入了对应的控件,X,Y值的原点就是元素的左上角
X,Y,count
--------
def tap(self, element=None, x=None, y=None, count=1):
opts = self._get_opts(element, x, y)
opts['count'] = count
self._add_action('tap', opts)
self.driver.tap([(422, 595)])输入
1
2
3loginInput = driver.find_element_by_id("com.tencent.mobileqq:id/password")
driver.set_value(loginInput,"password")
loginInput.send_keys("password") # 这种方式对appium的版本有要求
拖拽
- 控件拖拽
1
2
3
4
5
6
7
8
9
10def drag_and_drop(self, origin_el, destination_el):
"""Drag the origin element to the destination element
:Args:
- originEl - the element to drag
- destinationEl - the element to drag to
"""
action = TouchAction(self)
action.long_press(origin_el).move_to(destination_el).release().perform()
return self
长按
1 |
|