auto-chrome
Advanced tools
Comparing version 1.2.1 to 1.2.2
@@ -229,3 +229,3 @@ "use strict"; | ||
/** | ||
* 分多次滚动至目标元素 | ||
* 分多次滚动页面至目标元素可视区域 | ||
* 在每个单次滚动后重新计数坐标,防止DOM更新后原坐标失效 | ||
@@ -248,3 +248,22 @@ * 当chrome不稳定导致事件未执行时,采用实时坐标提供了纠正错误的机会 | ||
} | ||
/** | ||
* 快速将元素滚动至可视区域 | ||
*/ | ||
async scrollIntoView() { | ||
const { objectId } = this; | ||
await this.frame.callFunctionOn({ | ||
functionDeclaration: element => { | ||
element.scrollIntoView(); | ||
}, | ||
arguments: [{ objectId }] | ||
}) | ||
await sleep(500); | ||
} | ||
/** | ||
* 高仿真点击元素 | ||
@@ -270,8 +289,6 @@ */ | ||
/** | ||
* 高仿真点击元素 | ||
* 高仿真点击元素,带导航 | ||
*/ | ||
async clickNav() { | ||
// await this.label() | ||
const result = await this.getBoundingRect(); | ||
@@ -293,4 +310,5 @@ | ||
} | ||
/** | ||
* 标亮元素 | ||
* 框选元素 | ||
*/ | ||
@@ -308,7 +326,8 @@ async label() { | ||
await sleep(500) | ||
await sleep(500); | ||
} | ||
} | ||
module.exports = Element; |
@@ -82,2 +82,3 @@ "use strict" | ||
} | ||
/** | ||
@@ -84,0 +85,0 @@ * @param {!Object=} options |
{ | ||
"name": "auto-chrome", | ||
"version": "1.2.1", | ||
"version": "1.2.2", | ||
"description": "使用Node.js操作Chrome或Chromium,高仿真的用户行为模拟器", | ||
@@ -5,0 +5,0 @@ "main": "lib/", |
@@ -60,13 +60,13 @@ # auto-chrome | ||
### 页面导航 | ||
由于301重定向到新的url,连续多次触发上下文切换,导致上下文错位。301难以被察觉,且很难做预判,在调试时应该格外注意。 | ||
## 页面导航 | ||
浏览器导航事件可分为可预测和不可预测两种,由于触发导航的方式非常多,通过鼠标、键盘、JS脚本方式均可能触发未知的导航事件。如果导航切换时序不正确,会产生上下文消息错乱的bug。 | ||
另外一种情况是由于url重定向,频繁的触发上下文切换,导致上下文错位。这种场景难以被察觉,也很难做预判。 | ||
### 可预测导航 | ||
#### 可预测导航 | ||
对于chrome.newPage()、page.goto()这类明确包含导航行为的显性操作,autoChrome进行内部封装,在使用时不需要做额外的处理。 | ||
#### 不可预测导航 | ||
### 不可预测导航 | ||
@@ -113,4 +113,2 @@ * 导航可能刷新当前标签,也可能创建新标签 | ||
* `port` *Number* ws远程连接端口号 | ||
* `emulate` *Object* 设备仿真,该配置对于初始标签不太凑效,可能由于初始targetCreated事件并没有被捕获。 | ||
@@ -117,0 +115,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
86044
2020
436