app自动化的特殊操作

一.截屏

File srcfile=driver.getScreenshotAs(OutputType.FILE);    //得到截图源文件对象
File dstfile=new File("C:\\Users\\86130\\Desktop\\photo\\screenshot");     //生成本地文件的目标文件对象
try {
FileUtils.copyFile(srcfile,dstfile);
//把截图源文件拷贝到目标文件中(以文件的形式保存到本地) } catch (IOException e) { e.printStackTrace(); }

二.点击坐标

开发者选项中勾选指针位置,手机页面增加坐标定位,触摸可得到位置的坐标

TouchAction touchAction=new TouchAction(driver);         //得到TouchAction对象
PointOption pointOption=PointOption.point(140,1300);     //通过touchAction提供的API,press需要传入pointoption类型的参数
touchAction.press(pointOption).release().perform();      //release:手指抬起;perform:让动作生效
注意:坐标点击受设备屏幕尺寸/分辨率/DPI影响,万不得已不要使用此种方式

三.手势操作-滑动

滑动场景有左右翻页,上下滑动,下拉刷新等
TouchAction touchAction1=new TouchAction(driver);
int width=driver.manage().window().getSize().getWidth();      //获取屏幕的宽和高,通过比例来滑动屏幕,即使更换手机屏幕分辨率,也不影响代码的操作
int height=driver.manage().window().getSize().getHeight();
PointOption pointOption1=PointOption.point(width/2,height*2/3);    //把坐标换为pointoption类型,press需要的参数
PointOption pointOption2=PointOption.point(width/2,height/3);
Duration duration=Duration.ofSeconds(2);             //把滑动时间换成waitaction类型,需要两步。先把时间换成duration类型,再把duration转换为waitoption类型
WaitOptions waitOptions=WaitOptions.waitOptions(duration);
touchAction1.press(pointOption1).waitAction(waitOptions).moveTo(pointOption2).release().perform();   //按下滑动起始点到滑动终点,再释放

四.元素通过工具定位

由于有些页面做了截图限制,无法通过工具(元素定位工具,adb等)进行截图

(可通过adb命令验证页面是否做了限制:adb shell screencap -p /sdcard/test.png

举例:哔哩哔哩,银行系统,密码输入页面

通过getPageSource获取到当前页面源代码,再从获取到的页面源代码中找到需要的元素

driver.findElement(MobileBy.id("tv.danmaku.bili:id/avatar")).click();
System.out.println(driver.getPageSource());    //由于无法定位到哔哩哔哩登录页的元素,可通过getPageSource获取到当前页面的源代码,再从获取到的页面源代码中找到需要的元素
driver.findElement(MobileBy.AndroidUIAutomator("new UiSelector().text(\"密码登录\")")).click();   //此元素是从getPageSource()得到的源代码中获取到的

五.toast元素定

Android中的Toast是一种简易的消息提示框。 当视图显示给用户,在应用程序中显示为浮动。和Dialog不一样的是,它永远不会获得焦点,无法被点击
toast元素定位可通过获取toast的text,找对应的text属性值中有包含未注册,请先注册关键字
By bypresent=MobileBy.xpath("//*[contains(@text,'未注册,请先注册')]");

 

posted @ 2021-06-11 01:09  思佳丽  阅读(145)  评论(0)    收藏  举报