【问题标题】:selenium-hub exit status 137selenium-hub 退出状态 137
【发布时间】:2019-08-30 07:34:59
【问题描述】:

我使用 Docker for Selenium Grid Hub 和 Nodes 来收集数据,包括

  • 硒/集线器:3.141.59-铁
  • 硒/node-fire_fox 3.141.59-铁

但运行一天后,selenium-hub 挂起以下异常:

INFO 退出:selenium-hub(退出状态 137;不是预期的)

selenium/node-fire_fox 异常是:

INFO [SelfRegisteringRemote$1.run] - 无法注册此节点:集线器已关闭或没有响应:无法连接到 selenium-hub/172.24.0.2:4444

我该怎么办?

【问题讨论】:

  • 查看日志消息为什么集线器关闭或没有响应

标签: java python-3.x selenium


【解决方案1】:

这不是 Selenium 的问题,而是 Docker 的问题。

以下链接汇总了错误exit status 137; not expected 的根本原因:

简而言之,出于某种原因,Docker 正在终止进程,在您的情况下,selenium-hub

对于 Mac 和 Windows,您可能需要在 Docker 首选项中增加专用于 Docker 的内存。

This answer here on SO 有一张截图显示如何操作。

【讨论】:

    【解决方案2】:

    如果您使用的是 docker,我不明白您为什么要让您的集线器启动并运行。

    查看他们的中心页面:https://github.com/SeleniumHQ/docker-selenium/tree/master/Hub

    集线器启动:docker run -d -p 4444:4444 --name selenium-hub selenium/hub

    节点启动:

    $ docker run -d --link selenium-hub:hub -v /dev/shm:/dev/shm selenium/node-chrome
    $ docker run -d --link selenium-hub:hub -v /dev/shm:/dev/shm selenium/node-firefox
    

    我会编写一个管道并定义我在测试会话开始时调出的集线器图像和节点图像,并在会话结束时删除图像。

    try{
      hubimage
      nodeimage
      runtests
    } catch(anything){
        throw anything;
    } finally {
        sh "docker rmi \$(docker inspect --format='{{range .RepoTags}} {{.}} {{end}}' ${hubimage});"
       sh "docker rmi \$(docker inspect --format='{{range .RepoTags}} {{.}} {{end}}' ${nodeimage});"
    }
    

    查看有关管道的更多信息:https://jenkins.io/doc/book/pipeline/

    【讨论】:

    • 谢谢。这是我在 stackoverflow 上的第一个问题。我使用python-selenium收集数据,为了保持稳定性,我维护了一个驱动程序。如果遇到异常,我会退出并检索驱动程序。但是一天后,hub死了。我可能已经理解了你所说的管道,但也许我不是很适合它。其实我这个项目的目的就是用headless Firefox来不断的收集网站数据。可能是我太复杂了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    • 2018-11-27
    • 2020-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多