【appium】APP元素操作Api、androidDriver操作Api

一、元素操作Api

主要是做断言 text

1、**click()------**触发当前元素的点击事件

**2、sendKeys(...)------**输入数据

3、**clear()------**清空内容

4、getAttribute() ------获取属性值

字符串类型属性:

  • content-desc(返回content-desc属性值)

  • text(返回 text)

  • className(返回 class)

  • resourceId(返回 resource-id)

布尔类型属性同UiautomatorViewer里面保持一致

5、getText() =====等同于:getAttribute("text")

获取当前元素的文本值(文本属性值)

6、getTagName()

二、androidDriver操作Api

1、currentActivity()

当前正在前台运行的界面名,我们可以用此API在某些场景进行断言:是否当前activity符合我们的预期等。

java 复制代码
//得到当前正在运行的activity
String activity = androidDriver.currentActivity();

2、getPageSource()

可以用于判断++当前页面++是否有某个元素,或者判断当前页面有没有产生变化:

如:上下滚动判断是否已经到了底端/顶端;

获取app代码源码 用来做断言 根据源码看页面有没有什么变化

⚠️注意是当前页面,当前看到的页面,不是全部页面

java 复制代码
//得到当前页面的结构图
androidDriver.getPageSource();

3、其他信息获取类API

  • 获取设备时间信息

    java 复制代码
    androidDriver.getDeviceTime();
  • 获取设备DPI ,注意不是分辨率,屏幕密度 (Density)

    java 复制代码
    androidDriver.getDisplayDensity();
  • 获取automation name,默认为null,

    如果有指定automation name为uiautomator2就为对应的值

    java 复制代码
    androidDriver.getAutomationName();
  • 获取设备横竖屏状态,有PORTRAIT(竖屏)与LANDSCAPE(横屏)

    java 复制代码
    androidDriver.getOrientation();

4、pressKey():KeyEvent 按键------app特有api------ pressKey()

输入android对应的key 激活对应的功能 包括:声音大小、相机、开关机、返回键等等

安卓对应的键:Android KeyCode 安卓键码对照表-CSDN博客

java 复制代码
KeyEvent key = new KeyEvent();
key.withKey(AndroidKey.BACK);
driver.pressKey(key);

5、getScreenshotAs() 截图

java 复制代码
//手机截图文件
//file对象存在一个临时目录,srcFile
File srcFile = driver.getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(srcFile,new File("/.../android.png"));

6、坐标点击 TouchAction

选择设置中关于手机->连续点击五次版本号->进入开发者选项->指针位置进行勾选

**注意:**坐标点击受设备屏幕尺寸/分辨率/DPI影响,万不得已不要使用此种方式
缺点:兼容性差 更换设备后一般不能用
实现方式:(类似于web的拖动:press------release------perform)
java 复制代码
TouchAction action = new TouchAction(driver);
//创建坐标点击对象PointOption
//创建点 x y  ⚠️左上角是原点
PointOption point = PointOption.point(493,837);
//点击
action.press(point).release().perform();
相关推荐
Mh19 小时前
别再只会 `find` 了:Map 在前端业务里的真实用法
前端·javascript
陈随易20 小时前
FFmpeg 9.0 发布,代号 Lei,音视频处理再升级
前端·后端·程序员
爱丶狸20 小时前
Grafana_Zabbix_ImageRenderer_部署与前端操作手册
linux·前端·zabbix·grafana·kylin
用户059540174461 天前
把AI对话记忆存储测试从手工改成Playwright+pytest,覆盖率从20%提到96%,回归时间缩短90%
前端·css
kyriewen1 天前
别再这样写TypeScript了——Code Review中最常见的8个反模式
前端·javascript·typescript
名字还没想好☜1 天前
Next.js ‘use client‘ 到底加在哪:Server/Client Components 边界与常见报错
开发语言·前端·javascript·react·next.js
午安~婉1 天前
GitHub Token/ GitHub Stats统计显示图异常
前端·github·vercel·github token
码云之上1 天前
AI Agent 工程化总览篇:从 Prompt 到 Harness
前端·人工智能
2501_926978331 天前
以说明书 DNA 为模板——完整 AGI 的结构图景
前端·人工智能·经验分享·笔记·ai写作
IT_陈寒1 天前
Vite静态资源引用这个坑我踩得有点疼
前端·人工智能·后端