在实际自动化项目运行过程中,很多时候App可以会出现各种异常,为了更好的定位问题,除了捕捉日志我们还需要对运行时的设备状态来进行截屏,从而达到一种“有图有真相”的效果。
下面我们来总结下常用的截图方法:
方法1:
save_screenshot() 该方法直接保存当前屏幕截图到当前脚本所在文件位置。
driver.save_screenshot('login.png')
方法2:
get_screenshot_as_file(self, filename)
将截图保留到指定文件路径
driver.get_screenshot_as_file('./images/login.png')
滑动操作一般是两点之间的滑动,而实际使用过程中用户可能要进行一些多点连续滑动操作。如九宫格滑动操作,连续拖动图片移动等场景,那么在Appium中该如何模拟这类操作呢?
Touch Action包含一些列操作,比如按压、长按、点击、移动、暂停,由着些不同操作可以组成一套动作。
使用TochAction需要先导入对应的模块
from appium.webdriver.common.touch_action import TouchAction
1、按压方法:press()
开始按压一个元素或坐标点(x,y)。通过手指按压手机屏幕的某个位置。 press也可以接收屏幕的坐标(x,y)。
press(self, el=None, x=None, y=None)
TouchAction(driver).press(x=0,y=308)
2、长按方法:longPress()
开始按压一个元素或坐标点(x,y)。 相比press()方法,longPress()多了一个入参,既然长按,得有按的时间吧。duration以毫秒为单位。1000表示按一秒钟。其用法与press()方法相同。
long_press(self, el=None, x=None, y=None, duration=1000)
3、点击方法:tap()
对一个元素或控件执行点击操作。用法参考press()。
tap(self, element=None, x=None, y=None, count=1)
4、移动方法:move_to()
将指针从上一个点移动到指定的元素或点。
move_to(self, el=None, x=None, y=None)
注意:移动到目位置有时是算绝对坐标点,有时是基于前面一个坐标点的偏移量,这个要结合具体App来实践。
5、暂停方法:Wait()
暂停脚本的执行,单位为毫秒。
wait(self, ms=0)
6、释放方法release()
结束的行动取消屏幕上的指针。
release(self)
7、执行perform()
执行的操作发送到服务器的命令操作。
perform(self)
【重要消息】感谢知友您能够看到这部分内容,本文是软件测试系列知识中移动栈测试中的一篇,笔者认为本部分全面的知识应该包含如下图所示的内容: