使用chromeless每5分钟运行一次测试,以验证我是否可以登录网站以及内容是否可用。
代码如下所示:
const { Chromeless } = require('chromeless')
async function run() {
const chromeless = new Chromeless({
remote: {
endpointUrl: 'https://abc1234567.execute-api.us-west-2.amazonaws.com/dev',
apiKey: 'abc123xyz987'
}
})
const screenshot = await chromeless
.clearCookies()
.setUserAgent('some-user-agent')
.goto('https://www.example.com')
.type('username', 'input[name="username"]')
.type('super_secret', 'input[name="password"]')
.click('#loginButton')
.wait('#TitleTagOnceLoggedIn')
.screenshot()
console.log(screenshot)
const report = await chromeless
.setUserAgent('some-user-agent')
.goto('https://www.example.com/only/accessible/if/logged/in')
.wait('#TitleTagForPageWhenLoggedIn')
.screenshot()
console.log(report)
await chromeless.end()
}
run().catch(console.error.bind(console))这工作得很好,但是每运行10-20次,我就会收到以下错误
Chromeless Proxy disconnected due to inactivity (no commands sent for 30 seconds).在来自lambda函数的cloudwatch日志中,我得到了一个类似的错误
Timing out. No requests received for 30 seconds如果我收到不活动错误,如何设置为重试?
发布于 2018-05-12 04:20:01
转换
await chromeless.end()
至
chromeless.end().catch(callback).then(callback)
并将其移动到非异步函数中,例如function end (callback) {...}。
然后让您的代码等待run完成执行,然后执行end,并通过回调处理结果。请参阅https://github.com/graphcool/chromeless/issues/259
https://stackoverflow.com/questions/48789956
复制相似问题