Skip to main content

AndroidDevice

AndroidDevice 代表一个已连接的设备,可以是真实硬件或模拟器。可以通过 android.devices([options]) 获取设备。

androidDevice.on('webview')

Added in: v1.9

当检测到新的 WebView 实例时触发。

androidDevice.close()

Added in: v1.9

断开与设备的连接。

androidDevice.drag(selector, dest[, options])

Added in: v1.9

将由 selector 定义的组件拖动到 dest 点。

androidDevice.fill(selector, text[, options])

Added in: v1.9

在由 selector 指定的输入框中填充 text 文本。

androidDevice.fling(selector, direction[, options])

Added in: v1.9
  • selector <[AndroidSelector]> 要快速滑动的选择器。#
  • direction <"down"|"up"|"left"|"right"> 快速滑动的方向。#
  • options? <Object>
  • returns: <Promise<void>>#

在指定的 direction 方向上快速滑动由 selector 定义的组件。

androidDevice.info(selector)

Added in: v1.9
  • selector <[AndroidSelector]> 要返回信息的选择器。#
  • returns: <Promise<[AndroidElementInfo]>>#

返回由 selector 定义的组件的信息。

androidDevice.installApk(file[, options])

Added in: v1.9

在设备上安装 apk 应用。

androidDevice.launchBrowser([options])

Added in: v1.9
  • options? <Object>
    • acceptDownloads? <boolean> 是否自动下载所有附件。默认为 true,接受所有下载。#
    • baseURL? <string> 当使用 page.goto(url[, options])page.route(url, handler[, options])page.waitForURL(url[, options])page.waitForRequest(urlOrPredicate[, options])page.waitForResponse(urlOrPredicate[, options]) 时,会通过 URL() 构造函数将基础 URL 纳入考虑来构建相应的 URL。示例:#
      • baseURL: http://localhost:3000 并导航到 /bar.html 结果为 http://localhost:3000/bar.html
      • baseURL: http://localhost:3000/foo/ 并导航到 ./bar.html 结果为 http://localhost:3000/foo/bar.html
      • baseURL: http://localhost:3000/foo(无尾部斜杠)并导航到 ./bar.html 结果为 http://localhost:3000/bar.html
    • bypassCSP? <boolean> 切换是否绕过页面的内容安全策略。#
    • colorScheme? <"light"|"dark"|"no-preference"> 模拟 'prefers-colors-scheme' 媒体特性,支持的值为 'light''dark''no-preference'。详见 page.emulateMedia([options])。默认为 'light'#
    • command? <string> 可选的包名,用于启动而不是默认的 Android Chrome 浏览器。#
    • deviceScaleFactor? <number> 指定设备缩放因子(可视为 dpr)。默认为 1#
    • extraHTTPHeaders? <Object<string, string>> 包含每个请求要发送的额外 HTTP 头的对象。#
    • forcedColors? <"active"|"none"> 模拟 'forced-colors' 媒体特性,支持的值为 'active''none'。详见 page.emulateMedia([options])。默认为 'none'#
    • geolocation? <Object>#
      • latitude <number> 纬度,值在 -90 到 90 之间。
      • longitude <number> 经度,值在 -180 到 180 之间。
      • accuracy? <number> 非负的精度值。默认为 0
    • hasTouch? <boolean> 指定视口是否支持触摸事件。默认为 false。#
    • httpCredentials? <Object> HTTP 身份验证的凭据。#
    • ignoreHTTPSErrors? <boolean> 发送网络请求时是否忽略 HTTPS 错误。默认为 false#
    • isMobile? <boolean> 是否考虑 meta viewport 标签并启用触摸事件。默认为 false。Firefox 不支持。#
    • javaScriptEnabled? <boolean> 是否在上下文中启用 JavaScript。默认为 true#
    • locale? <string> 指定用户区域设置,例如 en-GBde-DE 等。区域设置将影响 navigator.language 值、Accept-Language 请求头值以及数字和日期格式化规则。#
    • logger? <Logger> Playwright 日志输出器。#
    • offline? <boolean> 是否模拟网络离线。默认为 false#
    • permissions? <Array<string>> 授予此上下文中所有页面的权限列表。详见 browserContext.grantPermissions(permissions[, options])#
    • recordHar? <Object> 为所有页面启用 HAR 记录到 recordHar.path 文件。如果未指定,则不记录 HAR。确保等待 browserContext.close() 以保存 HAR。#
      • omitContent? <boolean> 控制是否从 HAR 中省略请求内容的可选设置。默认为 false。已弃用,请改用 content 策略。
      • content? <"omit"|"embed"|"attach"> 控制资源内容管理的可选设置。如果指定 omit,则不保存内容。如果指定 attach,资源将作为单独文件或 ZIP 存档中的条目保存。如果指定 embed,内容将按照 HAR 规范内嵌存储在 HAR 文件中。对于 .zip 输出文件,默认为 attach,对于所有其他文件扩展名,默认为 embed
      • path <string> 文件系统上写入 HAR 文件的路径。如果文件名以 .zip 结尾,默认使用 content: 'attach'
      • mode? <"full"|"minimal"> 设置为 minimal 时,仅记录从 HAR 路由所需的信息。这将省略大小、时间、页面、cookie、安全性以及其他在从 HAR 重放时未使用的 HAR 信息类型。默认为 full
      • urlFilter? <string|RegExp> 用于过滤存储在 HAR 中的请求的 glob 或正则表达式模式。当通过上下文选项提供了 baseURL 且传入的 URL 是路径时,它将通过 new URL() 构造函数合并。
    • recordVideo? <Object> 为所有页面启用视频记录到 recordVideo.dir 目录。如果未指定,则不记录视频。确保等待 browserContext.close() 以保存视频。#
      • dir <string> 放置视频的目录路径。
      • size? <Object> 记录视频的可选尺寸。如果未指定,尺寸将等于 viewport 缩小以适应 800x800。如果未明确配置 viewport,视频尺寸默认为 800x450。如有必要,每个页面的实际画面将缩小以适应指定的尺寸。
        • width <number> 视频帧宽度。
        • height <number> 视频帧高度。
    • reducedMotion? <"reduce"|"no-preference"> 模拟 'prefers-reduced-motion' 媒体特性,支持的值为 'reduce''no-preference'。详见 page.emulateMedia([options])。默认为 'no-preference'#
    • screen? <Object> 模拟通过 window.screen 在网页内可用的一致窗口屏幕尺寸。仅在设置了 viewport 时使用。#
      • width <number> 页面宽度(像素)。
      • height <number> 页面高度(像素)。
    • serviceWorkers? <"allow"|"block"> 是否允许网站注册 Service Worker。默认为 'allow'#
      • 'allow': 可以注册 Service Workers
      • 'block': Playwright 将阻止所有 Service Worker 的注册。
    • strictSelectors? <boolean> 如果指定,则为此上下文启用严格选择器模式。在严格选择器模式下,当多个元素匹配选择器时,所有对选择器的操作(意味着单个目标 DOM 元素)都将抛出异常。详见 Locator 以了解更多关于严格模式的信息。#
    • timezoneId? <string> 更改上下文的时区。支持的时区 ID 列表请参见 ICU 的 metaZones.txt#
    • userAgent? <string> 此上下文中使用的特定用户代理。#
    • videoSize? <Object> 已弃用 请改用 recordVideo#
      • width <number> 视频帧宽度。
      • height <number> 视频帧高度。
    • videosPath? <string> 已弃用 请改用 recordVideo#
    • viewport? <null|Object> 为每个页面模拟一致的视口。默认为 1280x720 视口。null 禁用默认视口。#
      • width <number> 页面宽度(像素)。
      • height <number> 页面高度(像素)。
  • returns: <Promise<BrowserContext>>#

在设备上启动 Chrome 浏览器,并返回其持久化上下文。

androidDevice.longTap(selector[, options])

Added in: v1.9

对由 selector 定义的组件执行长按操作。

androidDevice.model()

Added in: v1.9

设备型号。

androidDevice.open(command)

Added in: v1.9

在设备的 shell 中启动一个进程,并返回一个用于与启动的进程通信的套接字。

androidDevice.pinchClose(selector, percent[, options])

Added in: v1.9
  • selector <[AndroidSelector]> 要捏合收缩的选择器。#
  • percent <number> 捏合的大小,以组件大小的百分比表示。#
  • options? <Object>
  • returns: <Promise<void>>#

在收缩方向上捏合由 selector 定义的组件。

androidDevice.pinchOpen(selector, percent[, options])

Added in: v1.9
  • selector <[AndroidSelector]> 要捏合展开的选择器。#
  • percent <number> 捏合的大小,以组件大小的百分比表示。#
  • options? <Object>
  • returns: <Promise<void>>#

在展开方向上捏合由 selector 定义的组件。

androidDevice.press(selector, key[, options])

Added in: v1.9

在由 selector 定义的组件中按下指定的 key

androidDevice.push(file, path[, options])

Added in: v1.9

将文件复制到设备。

androidDevice.screenshot([options])

Added in: v1.9
  • options? <Object>
    • path? <string> 保存图像的文件路径。如果 path 是相对路径,则相对于当前工作目录解析。如果未提供路径,图像将不会保存到磁盘。#
  • returns: <Promise<Buffer>>#

返回包含设备截图的缓冲区。

androidDevice.scroll(selector, direction, percent[, options])

Added in: v1.9
  • selector <[AndroidSelector]> 要滚动的选择器。#
  • direction <"down"|"up"|"left"|"right"> 滚动方向。#
  • percent <number> 滚动距离,以组件大小的百分比表示。#
  • options? <Object>
  • returns: <Promise<void>>#

在指定的 direction 方向上滚动由 selector 定义的组件。

androidDevice.serial()

Added in: v1.9

设备序列号。

androidDevice.setDefaultTimeout(timeout)

Added in: v1.9

此设置将更改所有接受 timeout 选项的方法的默认最大时间。

androidDevice.shell(command)

Added in: v1.9

在设备上执行 shell 命令并返回其输出。

androidDevice.swipe(selector, direction, percent[, options])

Added in: v1.9
  • selector <[AndroidSelector]> 要滑动的选择器。#
  • direction <"down"|"up"|"left"|"right"> 滑动方向。#
  • percent <number> 滑动距离,以组件大小的百分比表示。#
  • options? <Object>
  • returns: <Promise<void>>#

在指定的 direction 方向上滑动由 selector 定义的组件。

androidDevice.tap(selector[, options])

Added in: v1.9

点击由 selector 定义的组件。

androidDevice.wait(selector[, options])

Added in: v1.9
  • selector <[AndroidSelector]> 要等待的选择器。#
  • options? <Object>
    • state? <"gone"> 可选的状态。可以是:#
      • default - 等待元素出现。
      • 'gone' - 等待元素不出现。
    • timeout? <number> 最大时间(毫秒),默认为 30 秒,传入 0 可禁用超时。可以通过 androidDevice.setDefaultTimeout(timeout) 方法更改默认值。#
  • returns: <Promise<void>>#

根据 state 等待特定的 selector 出现或消失。

androidDevice.waitForEvent(event[, optionsOrPredicate])

Added in: v1.9
  • event <string> 事件名称,通常传递给 *.on(event) 的同一个名称。#
  • optionsOrPredicate? <function|Object> 接收事件的谓词函数或选项对象。可选。#
  • returns: <Promise<Object>>#

等待事件触发并将其值传递给谓词函数。当谓词返回真值时返回。

androidDevice.webView(selector[, options])

Added in: v1.9

此方法等待直到匹配 selectorAndroidWebView 打开并返回它。如果已经有一个匹配 selector 的打开的 AndroidWebView,则立即返回。

androidDevice.webViews()

Added in: v1.9

当前打开的 WebView。

androidDevice.input

Added in: v1.9