Appium自动化过程中遇到的坑

1.滑动屏幕的坑(python)

  导入appium和selenium(如图①)


运行的时候,一直报错:AttributeError: 'WebDriver' object has no attribute

'swipe'---WebDriver对象没有swipe属性

Appium自动化过程中遇到的坑_第1张图片

  原因:在导入的时候appium放在了selenium的前面,导致selenium把appium覆盖了,把两者的位置调换一下就可以了



2.九宫格滑动解锁:python、Java

(1) python在使用TouchAction实现滑动解锁时,坐标需要写(x=0,  y=ystep),实例如下:

TouchAction(self.driver).press(x=xStartPoint, y=yStartPoint).wait(1000).move_to(x=0,

y=ystep).wait(1000).move_to(x=0, y=ystep).wait(1000).move_to(x=xstep,

y=0).release().perform()

(2) 而Java在使用TouchAction实现滑动解锁时,直接填写填写坐标值即可,实例如下

  TouchActionslide = new TouchAction(driver).press(x, y).waitAction(500).moveTo(0,

yStep).waitAction(500).moveTo(0,yStep).waitAction(500).moveTo(xStep, 0).release();


3.定位APP某个控件内的元素:Appium、Java

(1) python定位方法:UI界面如下  【红色框内为子控件】

Appium自动化过程中遇到的坑_第2张图片

#uker健康个人中心---编辑地址

self.driver.find_element_by_id('cn.sccl.xxxx.android:id/uhealth_personal_center_info_address').click()

#获取元素所在的控件

  cityDialog = self.driver.find_element_by_id('cn.sccl.xxxx.android:id/uhealth_lv_city')

#通过控件去定位控件内的元素

  cityDialog.find_element_by_name('河北省').click()

  cityDialog.find_element_by_name('邯郸市').click()

  self.driver.find_element_by_name('保存').click()

  time.sleep(3)

(2) Java定位方法:

//uker健康个人中心---编辑地址

driver.findElementById("cn.sccl.xxxx.android:id/uhealth_personal_center_info_address").click();

//获取元素所在的控件

MobileElement city = (MobileElement) driver.findElementById(“cn.sccl.ilife.android:id/uhealth_

lv_city”);

 MobileElement city_1 = (MobileElement)city.findElementByName(“河北省”);

 city_1.click();

 MobileElement shi = (MobileElement)city.findElementByName(“石家庄市”);

 shi.click();

或者:

MobileElement city = (MobileElement) driver.findElementById(“cn.sccl.xxxx.android:id/uhealth_

lv_city”);

city.findElementByName("河北省").click();

city.findElementByName("石家庄市").click(); 

4.Appium对键盘的处理

(1)方法1--- AppiumDriver实现     按键

         driver.sendKeyEvent(66);   //点击回车键

附录:keycode

电话键

KEYCODE_CALL

拨号键

5

KEYCODE_ENDCALL

挂机键

6

KEYCODE_HOME

按键Home

3

KEYCODE_MENU

菜单键

82

KEYCODE_BACK

返回键

4

KEYCODE_SEARCH

搜索键

84

KEYCODE_CAMERA

拍照键

27

KEYCODE_FOCUS

拍照对焦键

80

KEYCODE_POWER

电源键

26

KEYCODE_NOTIFICATION

通知键

83

KEYCODE_MUTE

话筒静音键

91

KEYCODE_VOLUME_MUTE

扬声器静音键

164

KEYCODE_VOLUME_UP

音量增加键

24

KEYCODE_VOLUME_DOWN

音量减小键

25



控制键

KEYCODE_ENTER

回车键

66

KEYCODE_ESCAPE

ESC键

111

KEYCODE_DPAD_CENTER

导航键:确定键

23

KEYCODE_DPAD_UP

导航键:向上

19

KEYCODE_DPAD_DOWN

导航键:向下

20

KEYCODE_DPAD_LEFT

导航键:向左

21

KEYCODE_DPAD_RIGHT

航键:向右

22

KEYCODE_MOVE_HOME

光标移动到开始键

122

KEYCODE_MOVE_END

光标移动到末尾键

123

KEYCODE_PAGE_UP

向上翻页键

92

KEYCODE_PAGE_DOWN

向下翻页键

93

KEYCODE_DEL

退格键

67

KEYCODE_FORWARD_DEL

删除键

112

KEYCODE_INSERT

插入键

124

KEYCODE_TAB

Tab键

61

KEYCODE_NUM_LOCK

小键盘锁

143

KEYCODE_CAPS_LOCK

大写锁定键

115

KEYCODE_BREAK

reak/Pause键

121

KEYCODE_SCROLL_LOCK

滚动锁定键

116

KEYCODE_ZOOM_IN

放大键

168

KEYCODE_ZOOM_OUT

缩小键

169


基本

KEYCODE_0

按键'0'

7

KEYCODE_1

按键'1'

8

KEYCODE_2

按键'2'

9

KEYCODE_3

按键'3'

10

KEYCODE_4

按键'4'

11

KEYCODE_5

按键'5'

12

KEYCODE_6

按键'6'

13

KEYCODE_7

按键'7'

14

KEYCODE_8

按键'8'

15

KEYCODE_9

按键'9'

16

KEYCODE_A

按键'A'

29

KEYCODE_B

按键'B'

30

KEYCODE_C

按键'C'

31

KEYCODE_D

按键'D'

32

KEYCODE_E

按键'E'

33

KEYCODE_F

按键'F'

34

KEYCODE_G

按键'G'

35

KEYCODE_H

按键'H'

36

KEYCODE_I

按键'I'

37

KEYCODE_J

按键'J'

38

KEYCODE_K

按键'K'

39

KEYCODE_L

按键'L'

40

KEYCODE_M

按键'M'

41

KEYCODE_N

按键'N'

42

KEYCODE_O

按键'O'

43

KEYCODE_P

按键'P'

44

KEYCODE_Q

按键'Q'

45

KEYCODE_R

按键'R'

46

KEYCODE_S

按键'S'

47

KEYCODE_T

按键'T'

48

KEYCODE_U

按键'U'

49

KEYCODE_V

按键'V'

50

KEYCODE_W

按键'W'

51

KEYCODE_X

按键'X'

52

KEYCODE_Y

按键'Y'

53

KEYCODE_Z

按键'Z'

54


组合键

KEYCODE_ALT_LEFT

Alt+Left

KEYCODE_ALT_RIGHT

Alt+Right

KEYCODE_CTRL_LEFT

Control+Left

KEYCODE_CTRL_RIGHT

Control+Right

KEYCODE_SHIFT_LEFT

Shift+Left

KEYCODE_SHIFT_RIGHT

Shift+Right




你可能感兴趣的:(Appium自动化过程中遇到的坑)