1、输入中文的处理
在初始化配置中增加两个参数:
"resetKeyboard":True, # 重置设备的输入键盘
"unicodeKeyboard":True # 采用unicode编码输入
2、区分手册打开还是非首次打开
"noReset":True # 用来记住app的session,如果有登陆或者做过初始化操作,为True时,后面不需要再操作
3、获取手机的分辨率
driver.get_window_size() #返回的值时字典类型,包含height和width 高度和宽度的值
4、获取手机截图
driver.get_screenshot_as_file(filename)
注意事项:路径必须手动创建 2、文件名必须是以PNG结尾的图片
6、设置手机网络
主要是为了实现视频类的app中,视频播放过程中网络切换时会有提示信息的操作
--获取手机网络
driver.network_connection appium定义的网络类型
driver.set_network_connection(connection_type) # connection_type 网络类型
网络类型:0,1,2,4,6
7、常用的三个键值 3 Home , 4 返回键 , 66 回车键
driver.press_keycode(3)
8、手机通知栏操作
driver.open_notifications()
二、滑动和拖拽事件
1、swipe滑动时间
driver.swipe(startx,starty,endx,endy,duration = None)
duration用来降低滑动的速度和惯性,单位是ms
2、scroll 滑动事件
scroll 是通过元素来进行滑动的
driver.scroll(source_element,target_element)
scroll 无法设置滑动的持续时间,带有一定的惯性。主要用于IOS中,android高版本系统可以使用。
3、drag_and_drop拖动事件
从一个元素滑动到另一个元素,第二个元素代替第一个元素原本屏幕上的位置。
driver.drag_and_drop(source_element,target_element)
三、高级手势操作
实现步骤:
1、创建TouchAction对象
2、调用手势方法
3、调用perform()执行操作
1、轻敲操作
实现步骤:
action = TouchAction(driver) #创建手势对象
action.tap(element=None,x=None,y=None,count=1) # 调用轻敲手势方法,传入的是一个元素的坐标点,count表示敲击的次数,默认为1
当元素的定位方法 find_element_by_id /class_name /xpath 不能够定位到元素时,可以根据坐标定位,然后进行点击操作
action.perform()
2、按下和抬起操作
按下:
press(element,x,y)
抬起:
release()
TouchAction(driver).press(x=477,y=489).release().perform() # 按下和抬起可以结合起来使用,达到点击的效果
3、等待
模拟手指的等待操作,wait(ms) ms 表示毫秒数
TouchAction(driver).press(x,y).wait(5000).release().perform()
4、长安操作
long_press(element,x=None,y=None,duration=1000)
element表示元素,xy是坐标,duration是长按的时长
5、移动操作
模拟手指在手机屏幕上的移动过程
move_to(element,x,y) element表示的元素对象,x和y表示的是坐标点,二选一
移动的操作是需要结合press和release一起使用
1 TouchAction(driver).press(x=260, 2 y=720).wait(500).move_to(x=540, y=720)3 .wait(500).move_to(x=820,y=720).wait(500).move_to(x= 4 540, y=1000).wait(500).move_to(x=260, y=1270)5 .wait(500).move_to(x=540
6、获取toast消息
Android中的toast是一种简易的消息提示框,并且一般在3s左右的时间就会消失。它属于系统提示的一种,而不是应用上的。所以使用元素定位工具定位是获取不到Toast元素的。
定位Toast元素 需要借助UiAutomator2,定位Toast必须使用xpath定位方式