AndroidDevice
AndroidDevice 代表一个已连接的设备,可以是真实硬件或模拟器。可以通过 android.devices([options]) 获取设备。
- androidDevice.on('webview')
- androidDevice.close()
- androidDevice.drag(selector, dest[, options])
- androidDevice.fill(selector, text[, options])
- androidDevice.fling(selector, direction[, options])
- androidDevice.info(selector)
- androidDevice.input
- androidDevice.installApk(file[, options])
- androidDevice.launchBrowser([options])
- androidDevice.longTap(selector[, options])
- androidDevice.model()
- androidDevice.open(command)
- androidDevice.pinchClose(selector, percent[, options])
- androidDevice.pinchOpen(selector, percent[, options])
- androidDevice.press(selector, key[, options])
- androidDevice.push(file, path[, options])
- androidDevice.screenshot([options])
- androidDevice.scroll(selector, direction, percent[, options])
- androidDevice.serial()
- androidDevice.setDefaultTimeout(timeout)
- androidDevice.shell(command)
- androidDevice.swipe(selector, direction, percent[, options])
- androidDevice.tap(selector[, options])
- androidDevice.wait(selector[, options])
- androidDevice.waitForEvent(event[, optionsOrPredicate])
- androidDevice.webView(selector[, options])
- androidDevice.webViews()
androidDevice.on('webview')
Added in: v1.9- type: <AndroidWebView>
当检测到新的 WebView 实例时触发。
androidDevice.close()
Added in: v1.9断开与设备的连接。
androidDevice.drag(selector, dest[, options])
Added in: v1.9selector<[AndroidSelector]> 要拖动的选择器。#dest<Object> 拖动到的目标点。#options?<Object>speed?<number> 可选的拖动速度,单位为每秒像素数。#timeout?<number> 最大时间(毫秒),默认为 30 秒,传入0可禁用超时。可以通过 androidDevice.setDefaultTimeout(timeout) 方法更改默认值。#
- returns: <Promise<void>>#
将由 selector 定义的组件拖动到 dest 点。
androidDevice.fill(selector, text[, options])
Added in: v1.9selector<[AndroidSelector]> 要填充的选择器。#text<string> 要填充到输入框中的文本。#options?<Object>timeout?<number> 最大时间(毫秒),默认为 30 秒,传入0可禁用超时。可以通过 androidDevice.setDefaultTimeout(timeout) 方法更改默认值。#
- returns: <Promise<void>>#
在由 selector 指定的输入框中填充 text 文本。
androidDevice.fling(selector, direction[, options])
Added in: v1.9selector<[AndroidSelector]> 要快速滑动的选择器。#direction<"down"|"up"|"left"|"right"> 快速滑动的方向。#options?<Object>speed?<number> 可选的快速滑动速度,单位为每秒像素数。#timeout?<number> 最大时间(毫秒),默认为 30 秒,传入0可禁用超时。可以通过 androidDevice.setDefaultTimeout(timeout) 方法更改默认值。#
- returns: <Promise<void>>#
在指定的 direction 方向上快速滑动由 selector 定义的组件。
androidDevice.info(selector)
Added in: v1.9返回由 selector 定义的组件的信息。
androidDevice.installApk(file[, options])
Added in: v1.9在设备上安装 apk 应用。
androidDevice.launchBrowser([options])
Added in: v1.9options?<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
- baseURL:
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>#hasTouch?<boolean> 指定视口是否支持触摸事件。默认为 false。#httpCredentials?<Object> HTTP 身份验证的凭据。#ignoreHTTPSErrors?<boolean> 发送网络请求时是否忽略 HTTPS 错误。默认为false。#isMobile?<boolean> 是否考虑meta viewport标签并启用触摸事件。默认为false。Firefox 不支持。#javaScriptEnabled?<boolean> 是否在上下文中启用 JavaScript。默认为true。#locale?<string> 指定用户区域设置,例如en-GB、de-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() 以保存视频。#reducedMotion?<"reduce"|"no-preference"> 模拟'prefers-reduced-motion'媒体特性,支持的值为'reduce'、'no-preference'。详见 page.emulateMedia([options])。默认为'no-preference'。#screen?<Object> 模拟通过window.screen在网页内可用的一致窗口屏幕尺寸。仅在设置了viewport时使用。#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。#videosPath?<string> 已弃用 请改用recordVideo。#viewport?<null|Object> 为每个页面模拟一致的视口。默认为 1280x720 视口。null禁用默认视口。#
- returns: <Promise<BrowserContext>>#
在设备上启动 Chrome 浏览器,并返回其持久化上下文。
androidDevice.longTap(selector[, options])
Added in: v1.9selector<[AndroidSelector]> 要点击的选择器。#options?<Object>timeout?<number> 最大时间(毫秒),默认为 30 秒,传入0可禁用超时。可以通过 androidDevice.setDefaultTimeout(timeout) 方法更改默认值。#
- returns: <Promise<void>>#
对由 selector 定义的组件执行长按操作。
androidDevice.model()
Added in: v1.9设备型号。
androidDevice.open(command)
Added in: v1.9command<string>#- returns: <Promise<AndroidSocket>>#
在设备的 shell 中启动一个进程,并返回一个用于与启动的进程通信的套接字。
androidDevice.pinchClose(selector, percent[, options])
Added in: v1.9selector<[AndroidSelector]> 要捏合收缩的选择器。#percent<number> 捏合的大小,以组件大小的百分比表示。#options?<Object>speed?<number> 可选的捏合速度,单位为每秒像素数。#timeout?<number> 最大时间(毫秒),默认为 30 秒,传入0可禁用超时。可以通过 androidDevice.setDefaultTimeout(timeout) 方法更改默认值。#
- returns: <Promise<void>>#
在收缩方向上捏合由 selector 定义的组件。
androidDevice.pinchOpen(selector, percent[, options])
Added in: v1.9selector<[AndroidSelector]> 要捏合展开的选择器。#percent<number> 捏合的大小,以组件大小的百分比表示。#options?<Object>speed?<number> 可选的捏合速度,单位为每秒像素数。#timeout?<number> 最大时间(毫秒),默认为 30 秒,传入0可禁用超时。可以通过 androidDevice.setDefaultTimeout(timeout) 方法更改默认值。#
- returns: <Promise<void>>#
在展开方向上捏合由 selector 定义的组件。
androidDevice.press(selector, key[, options])
Added in: v1.9selector<[AndroidSelector]> 要在其中按键的选择器。#key<[AndroidKey]> 要按下的键。#options?<Object>timeout?<number> 最大时间(毫秒),默认为 30 秒,传入0可禁用超时。可以通过 androidDevice.setDefaultTimeout(timeout) 方法更改默认值。#
- returns: <Promise<void>>#
在由 selector 定义的组件中按下指定的 key。
androidDevice.push(file, path[, options])
Added in: v1.9将文件复制到设备。
androidDevice.screenshot([options])
Added in: v1.9返回包含设备截图的缓冲区。
androidDevice.scroll(selector, direction, percent[, options])
Added in: v1.9selector<[AndroidSelector]> 要滚动的选择器。#direction<"down"|"up"|"left"|"right"> 滚动方向。#percent<number> 滚动距离,以组件大小的百分比表示。#options?<Object>speed?<number> 可选的滚动速度,单位为每秒像素数。#timeout?<number> 最大时间(毫秒),默认为 30 秒,传入0可禁用超时。可以通过 androidDevice.setDefaultTimeout(timeout) 方法更改默认值。#
- 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.9selector<[AndroidSelector]> 要滑动的选择器。#direction<"down"|"up"|"left"|"right"> 滑动方向。#percent<number> 滑动距离,以组件大小的百分比表示。#options?<Object>speed?<number> 可选的滑动速度,单位为每秒像素数。#timeout?<number> 最大时间(毫秒),默认为 30 秒,传入0可禁用超时。可以通过 androidDevice.setDefaultTimeout(timeout) 方法更改默认值。#
- returns: <Promise<void>>#
在指定的 direction 方向上滑动由 selector 定义的组件。
androidDevice.tap(selector[, options])
Added in: v1.9selector<[AndroidSelector]> 要点击的选择器。#options?<Object>duration?<number> 可选的点击持续时间(毫秒)。#timeout?<number> 最大时间(毫秒),默认为 30 秒,传入0可禁用超时。可以通过 androidDevice.setDefaultTimeout(timeout) 方法更改默认值。#
- returns: <Promise<void>>#
点击由 selector 定义的组件。
androidDevice.wait(selector[, options])
Added in: v1.9selector<[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.9event<string> 事件名称,通常传递给*.on(event)的同一个名称。#optionsOrPredicate?<function|Object> 接收事件的谓词函数或选项对象。可选。#predicate<function> 接收事件数据,当等待应该解析时解析为真值。timeout?<number> 最大等待时间(毫秒)。默认为30000(30 秒)。传入0可禁用超时。可以通过 androidDevice.setDefaultTimeout(timeout) 更改默认值。
- returns: <Promise<Object>>#
等待事件触发并将其值传递给谓词函数。当谓词返回真值时返回。
androidDevice.webView(selector[, options])
Added in: v1.9selector<Object>#options?<Object>timeout?<number> 最大时间(毫秒),默认为 30 秒,传入0可禁用超时。可以通过 androidDevice.setDefaultTimeout(timeout) 方法更改默认值。#
- returns: <Promise<AndroidWebView>>#
此方法等待直到匹配 selector 的 AndroidWebView 打开并返回它。如果已经有一个匹配 selector 的打开的 AndroidWebView,则立即返回。
androidDevice.webViews()
Added in: v1.9- returns: <Array<AndroidWebView>>#
当前打开的 WebView。
androidDevice.input
Added in: v1.9- type: <AndroidInput>