首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试使用无铬不活动的catch

尝试使用无铬不活动的catch
EN

Stack Overflow用户
提问于 2018-02-14 22:47:59
回答 1查看 111关注 0票数 1

使用chromeless每5分钟运行一次测试,以验证我是否可以登录网站以及内容是否可用。

代码如下所示:

代码语言:javascript
复制
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次,我就会收到以下错误

代码语言:javascript
复制
Chromeless Proxy disconnected due to inactivity (no commands sent for 30 seconds).

在来自lambda函数的cloudwatch日志中,我得到了一个类似的错误

代码语言:javascript
复制
Timing out. No requests received for 30 seconds

如果我收到不活动错误,如何设置为重试?

EN

回答 1

Stack Overflow用户

发布于 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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48789956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档