page - puppeteerApp
在android app中运行,调用kotlin代码. Page 默认已经实例化了一个page对象,可以直接使用。如 await page.click('#id');
page.title() ⇒ *
获取当前app的名称,如微信
Returns: *
- {Promise<string>}
page.url() ⇒ *
获取当前app的package name
Returns: *
- {Promise<string>} , 如com.tencent.mm/android.widget.FrameLayout
page.goto(activityFullName) ⇒ *
跳转到指定app的activity
Returns: *
- {Promise<void>}
Param | Type |
---|---|
activityFullName | string |
page.$(selector) ⇒ *
获取指定元素,如果元素不存在,返回null。如果存在多个,则返回第一个。
Returns: *
- {Promise<any>}
Param | Type |
---|---|
selector | string |
Example
let ele = await page.$('#bkk');
let item = await page.$("=收藏按钮");
item.click();
console.log("item:" , JSON.stringify(item) );
page.$$(selector) ⇒ *
获取所有指定元素,返回数组。
Returns: *
- {Promise<any[]>}
Param | Type |
---|---|
selector | string |
Example
let eles = await page.$$('#bkk');
page.click(selector, [options]) ⇒ *
点击指定元素
Returns: *
- {Promise<void>}
Param | Type | Default |
---|---|---|
selector | string | |
[options] | ClickOptions | { clickCount: 1, delay: 100 } |
Example
await page.click('#bkk');
page.evaluate(pageFunction, ...args) ⇒ Promise.<Serializable>
在页面上执行指定的方法。类似eval()方法。
Returns: Promise.<Serializable>
- pageFunction执行的结果
Param | Type | Description |
---|---|---|
pageFunction | function | string | 要在页面实例上下文中执行的方法 |
...args | * | 要传给 pageFunction 的参数 |
page.waitForSelector(selector, options) ⇒ Promise.<AppElement>
要等待的元素选择器 等待指定的选择器匹配的元素出现在页面中,如果调用此方法时已经有匹配的元素,那么此方法立即返回。 如果指定的选择器在超时时间后扔不出现,此方法会报错。
Returns: Promise.<AppElement>
- 返回一个 Promise,resolve 后返回一个 AppElement 对象。
Param | Type | Description |
---|---|---|
selector | string | 要等待的元素选择器。和document.querySelector()的参数一样。css选择器语法格式;#id,.class,[attr=value],=文本, >=文本 |
options | Object | 可选参数: |
options.timeout | number | 超时时间,单位毫秒,默认30000 |
options.pollingInterval | number | 轮询间隔时间,单位毫秒,默认100 |
Example
await page.waitForSelector('#bkk');
await page.waitForSelector('#bkk', { timeout: 10000 });
await page.waitForSelector('.android.view.View[text="爱读书"]')
await page.waitForSelector('.View[text="爱读书"]');
let element = await page.waitForSelector('.View[text="爱读书"]');
await element.click();
page.waitForFunction(pageFunction, [options], ...args) ⇒ *
等待pageFunction中的返回值为true,如果超时则报错。 waitForFunction 可以用来监控页面的大小变化,屏幕旋转。
Param | Type | Default | Description |
---|---|---|---|
pageFunction | * | 要在页面实例上下文中执行的方法 | |
[options] | Object | { timeout: 30000, pollingInterval: 100 } | |
...args | * |
Example
await page.waitForFunction(()=> Device.rotation() !=0 );
page.type(selector, text, [options]) ⇒ Promise.<void>
在页面上指定的元素中输入文本。
Returns: Promise.<void>
- 返回一个 Promise,表示输入操作完成。
Param | Type | Default | Description |
---|---|---|---|
selector | string | 要输入内容的元素选择器。如果有多个匹配的元素,输入到第一个匹配的元素。 | |
text | string | 要输入的文本 | |
[options] | Object | { delay: 0, autoCorrect: true } | 可选参数 |
[options.delay] | number | 0 | 输入文本之间的延迟时间(毫秒)。默认为0。 |
[options.autoCorrect] | boolean | true | 指定是否自动纠正输入的文本。默认为 true。 |
Example
await page.type('#bkk', 'test.844.ai');
page.screenshot([options]) ⇒ Promise.<string>
对当前页面进行截图。
Returns: Promise.<string>
- - Promise 对象,resolve 后返回截图的 base64 字符串。
Param | Type | Default | Description |
---|---|---|---|
[options] | Object | {} | 可选配置参数 |
[options.path] | string | 截图保存路径。文件扩展名决定图片类型。相对路径从当前路径解析。若未指定路径,则不保存到硬盘。 | |
[options.type] | string | "'png'" | 指定截图类型,可为 'jpeg' 或 'png'。默认 'png'。 |
[options.quality] | number | 图片质量(0-100),仅适用于 jpeg 类型。 | |
[options.clip] | Object | 指定裁剪区域 | |
[options.clip.x] | number | 裁剪区域左上角 x 坐标 | |
[options.clip.y] | number | 裁剪区域左上角 y 坐标 | |
[options.clip.width] | number | 裁剪宽度 | |
[options.clip.height] | number | 裁剪高度 | |
[options.omitBackground] | boolean | false | 是否隐藏默认白色背景,使背景透明。默认不透明。 |
[options.encoding] | string | "'binary'" | 图像编码类型,可为 'base64' 或 'binary'。默认 'binary'。 |
page.clicks(selectors, options)
方便点击多个元素。如输入金额、密码.
Param | Type |
---|---|
selectors | * |
options | * |
Example
await page.clicks(['=1', '=.', '=8', '=8']);
Example
await page.clicks(['=1', '=.', '=8', '=8'], { delay: 200 });
Example
await page.clicks('1.88');
page.tap(x, y, [options]) ⇒ Promise.<void>
在指定的坐标位置进行轻触(tap)操作。
Returns: Promise.<void>
- 一个表示操作完成的 Promise
Param | Type | Default | Description |
---|---|---|---|
x | number | X 轴坐标位置 | |
y | number | Y 轴坐标位置 | |
[options] | Object | {} | 可选配置参数 |
[options.clickCount] | number | 1 | 点击次数,默认为1 |
[options.delay] | number | 50 | 点击之间的延迟时间(毫秒),默认为50 |
[options.interval] | number | 100 | 每次点击之间的间隔时间(毫秒),默认为100 |
[options.left] | number | null |
| 区域左上角的 X 轴坐标。如果设置了 left,top,width,height,则会在该区域内 |
随机生成坐标。 | |||
[options.top] | number | null |
| 区域左上角的 Y 轴坐标 |
[options.width] | number | null |
| 区域宽度 |
[options.height] | number | null |
| 区域高度 |
page.tapText(text, [options]) ⇒ Promise.<void>
点击指定文本的元素,当匹配多个元素时,点击第一个元素。 解决 page.click时失效,找不到元素的问题;提高健全性; 和下面代码相同,把它包装成了一个方法。方便使用
let elements = await page.elements()
let item = flatElements(elements).find(item => item.text === '查看排行榜');
if(item){
let { left , top , right , bottom } = item.boundsInScreen ;
let x = ( left + right ) / 2 ;
let y = ( top + bottom ) / 2 ;
await page.tap( x , y );
}
Returns: Promise.<void>
- 一个表示操作完成的 Promise
Param | Type | Default | Description |
---|---|---|---|
x | number | text 文本,默认是>=选择器。text支持选择器字符。如:爱读书,=爱读书,或 >=爱读书。 | |
[options] | Object | {} | 可选配置参数 |
[options.clickCount] | number | 1 | 点击次数,默认为1 |
[options.delay] | number | 50 | 点击之间的延迟时间(毫秒),默认为50 |
[options.interval] | number | 100 | 每次点击之间的间隔时间(毫秒),默认为100 |
page.elements
获取当前页面的所有元素, 数据内容是nodeInfo转换为json对象。
Kind: static property of page
page.longTap ⇒ Promise.<void>
在指定的坐标位置进行长按(long tap)操作。触发长按,如手机系统桌面长按app图标。接口参数类似 如page.tap
Kind: static property of page
Returns: Promise.<void>
- 一个表示操作完成的 Promise
Param | Type | Default | Description |
---|---|---|---|
x | number | X 轴坐标位置 | |
y | number | Y 轴坐标位置 | |
[options] | Object | {} | 可选配置参数 |
[options.delay] | number | 500 | 长按延迟时间(毫秒),默认为500 |
[options.left] | number | null |
| 区域左上角的 X 轴坐标 |
[options.top] | number | null |
| 区域左上角的 Y 轴坐标 |
[options.width] | number | null |
| 区域宽度 |
[options.height] | number | null |
| 区域高度 |
page.touchDown ⇒ Promise.<void>
模拟按下指定坐标位置的触摸操作。
Kind: static property of page
Returns: Promise.<void>
- 一个表示操作完成的 Promise
Param | Type | Description |
---|---|---|
x | number | X 轴坐标位置 |
y | number | Y 轴坐标位置 |
page.touchUp ⇒ Promise.<void>
模拟释放指定坐标位置的触摸操作。
Kind: static property of page
Returns: Promise.<void>
- 一个表示操作完成的 Promise
Param | Type | Description |
---|---|---|
x | number | X 轴坐标位置 |
y | number | Y 轴坐标位置 |
page.touchMove ⇒ Promise.<void>
模拟从一个坐标位置移动到另一个坐标位置的触摸滑动操作。
Kind: static property of page
Returns: Promise.<void>
- 一个表示操作完成的 Promise
Param | Type | Default | Description |
---|---|---|---|
xFrom | number | 起始 X 轴坐标位置 | |
yFrom | number | 起始 Y 轴坐标位置 | |
xTo | number | 目标 X 轴坐标位置 | |
yTo | number | 目标 Y 轴坐标位置 | |
[duration] | number | 200 | 滑动持续时间(毫秒),默认为200 |
page.swipe ⇒ Promise.<void>
模拟从一个坐标位置滑动到另一个坐标位置的滑动操作。
Kind: static property of page
Returns: Promise.<void>
- 一个表示操作完成的 Promise
Param | Type | Default | Description |
---|---|---|---|
xFrom | number | 起始 X 轴坐标位置 | |
yFrom | number | 起始 Y 轴坐标位置 | |
xTo | number | 目标 X 轴坐标位置 | |
yTo | number | 目标 Y 轴坐标位置 | |
[duration] | number | 200 | 滑动持续时间(毫秒),默认为200 |
page.swipeDown ⇒ Promise.<void>
模拟从指定坐标位置向下滑动的操作。
Kind: static property of page
Returns: Promise.<void>
- 一个表示操作完成的 Promise
Param | Type | Default | Description |
---|---|---|---|
x | number | X 轴坐标位置 | |
y | number | Y 轴坐标位置 | |
[duration] | number | 200 | 滑动持续时间(毫秒),默认为200 |
page.swipeUp ⇒ Promise.<void>
模拟从指定坐标位置向上滑动的操作。
Kind: static property of page
Returns: Promise.<void>
- 一个表示操作完成的 Promise
Param | Type | Default | Description |
---|---|---|---|
x | number | X 轴坐标位置 | |
y | number | Y 轴坐标位置 | |
[duration] | number | 200 | 滑动持续时间(毫秒),默认为200 |
page.swipeLeft ⇒ Promise.<void>
模拟从指定坐标位置向左滑动的操作。
Kind: static property of page
Returns: Promise.<void>
- 一个表示操作完成的 Promise
Param | Type | Default | Description |
---|---|---|---|
x | number | X 轴坐标位置 | |
y | number | Y 轴坐标位置 | |
[duration] | number | 200 | 滑动持续时间(毫秒),默认为200 |
page.swipeRight ⇒ Promise.<void>
模拟从指定坐标位置向右滑动的操作。
Kind: static property of page
Returns: Promise.<void>
- 一个表示操作完成的 Promise
Param | Type | Default | Description |
---|---|---|---|
x | number | X 轴坐标位置 | |
y | number | Y 轴坐标位置 | |
[duration] | number | 200 | 滑动持续时间(毫秒),默认为200 |
page.home
回到这个App;默认等待200毫秒
Example
await page.home();