auto-chrome
Advanced tools
Comparing version 0.11.3 to 0.11.4
@@ -35,3 +35,4 @@ "use strict" | ||
'--hide-scrollbars', | ||
'--mute-audio' | ||
'--mute-audio', | ||
'--force-device-scale-factor=1.25', | ||
); | ||
@@ -105,6 +106,6 @@ } | ||
chrome.options = options | ||
await chrome.init() | ||
chrome.options = options | ||
return chrome | ||
@@ -111,0 +112,0 @@ |
"use strict" | ||
const ChromeEvent = require('./ChromeEvent'); | ||
const childProcess = require('child_process') | ||
class Chrome extends ChromeEvent { | ||
/** | ||
* | ||
* @param {Object} ws WebSocket实例 | ||
@@ -74,11 +72,2 @@ * @param {Boolean} ignoreHTTPSErrors 是否忽略https错误 | ||
/** | ||
* 在独立浏览器窗口中打开网页 | ||
* @param {String} url 新标签的初始url | ||
*/ | ||
async newChromePage(url = 'about:newtab') { | ||
childProcess.spawn(this.options.executablePath, [...this.options.args, url, `--new-window`]) | ||
} | ||
/** | ||
* 创建新的浏览器上下文,仅支持隐身模式 | ||
@@ -85,0 +74,0 @@ */ |
@@ -7,3 +7,3 @@ "use strict" | ||
const { logger, timechain, timerPromise, sleep } = helper | ||
const { logger, timechain, restartPromise, sleep } = helper | ||
@@ -22,3 +22,3 @@ class ChromeEvent { | ||
this.newPagePromise = new timerPromise(3000, error => { | ||
this.newPagePromise = new restartPromise(3000, error => { | ||
logger.warn('newPagePromise等待超时') | ||
@@ -25,0 +25,0 @@ }) |
@@ -6,2 +6,3 @@ "use strict" | ||
const timerPromise = require('zpromise/timer') | ||
const restartPromise = require('zpromise/restart') | ||
@@ -14,2 +15,3 @@ const timechain = new timeChain({ delay: 10000 }) | ||
timerPromise, | ||
restartPromise, | ||
assert(value, message) { | ||
@@ -16,0 +18,0 @@ if (!value) { |
@@ -16,3 +16,3 @@ "use strict" | ||
super() | ||
super(chrome) | ||
@@ -19,0 +19,0 @@ this.chrome = chrome |
"use strict" | ||
const { logger, timechain, timerPromise } = require('./helper'); | ||
const { logger, timechain, restartPromise } = require('./helper'); | ||
@@ -10,3 +10,3 @@ /** | ||
constructor() { | ||
constructor(chrome) { | ||
@@ -18,7 +18,7 @@ this.mid = 1 // 消息自增id | ||
this.ctxPromise = new timerPromise(3000, error => { | ||
this.ctxPromise = new restartPromise(3000, error => { | ||
logger.warn('ctxPromise等待超时') | ||
}) | ||
this.loadPromise = new timerPromise(15000, error => { | ||
this.loadPromise = new restartPromise(chrome.options.loadTimeout || 15000, error => { | ||
logger.warn('loadPromise等待超时') | ||
@@ -25,0 +25,0 @@ }) |
{ | ||
"name": "auto-chrome", | ||
"version": "0.11.3", | ||
"version": "0.11.4", | ||
"description": "使用Node.js操作Chrome或Chromium,高仿真的用户行为模拟器", | ||
@@ -17,3 +17,3 @@ "main": "index.js", | ||
"ws": "^6.1.2", | ||
"zpromise": "^1.4.0" | ||
"zpromise": "^1.5.0" | ||
}, | ||
@@ -20,0 +20,0 @@ "directories": { |
@@ -128,2 +128,4 @@ # auto-chrome | ||
* `loadTimeout` *Number* 自动导航等待页面加载的最大停留时间,单位ms | ||
* `return` *Chrome* Chrome类实例 | ||
@@ -159,4 +161,10 @@ | ||
通过pageId关闭指定的标签 | ||
* `pageId` *String* 要删除page的id | ||
### chrome.createBrowserContext() | ||
创建独立的浏览器环境,只能在隐身模式下运行。 | ||
### chrome.send(method, params) | ||
@@ -163,0 +171,0 @@ |
@@ -9,3 +9,5 @@ "use strict" | ||
for (let i = 0; i < 2; i++) { | ||
cluster.fork({ cid: i }); | ||
} | ||
@@ -114,3 +116,2 @@ | ||
} | ||
@@ -117,0 +118,0 @@ |
@@ -19,3 +19,4 @@ "use strict" | ||
`--user-agent=${userAgent}`, | ||
'--start-maximized' | ||
'--start-maximized', | ||
'--force-device-scale-factor=1.25', | ||
], | ||
@@ -30,2 +31,3 @@ emulate: { | ||
}, | ||
loadTimeout: 6000, | ||
// devtools: true, | ||
@@ -48,3 +50,3 @@ }) | ||
await chrome.page.close() | ||
// await chrome.page.close() | ||
@@ -51,0 +53,0 @@ } |
@@ -17,3 +17,4 @@ "use strict" | ||
'--start-maximized', | ||
'--proxy-server=113.110.194.28:10306' | ||
'--proxy-server=27.40.154.183:4338', | ||
'--force-device-scale-factor=1.25', | ||
], | ||
@@ -36,30 +37,4 @@ emulate: { | ||
let result = await page.run((url, $items) => { | ||
let elements = document.querySelectorAll($items) | ||
let sort = 0 | ||
// 遍历匹配url位置 | ||
for (let element of elements) { | ||
sort++ | ||
if (element.outerHTML.indexOf(url) >= 0) { | ||
element.sort = sort | ||
return element | ||
} | ||
} | ||
// 找不到目标时随机选择element | ||
sort = 1 + Math.round(Math.random() * elements.length) | ||
return elements | ||
}, 'm.autohome.com.cn', `#main > .r-results > div[data-page='1'] > a`) | ||
console.log(result) | ||
} | ||
main() |
423
1
583696
3135
Updatedzpromise@^1.5.0