【问题标题】:Debug Firefox on CI server在 CI 服务器上调试 Firefox
【发布时间】:2019-12-23 14:33:24
【问题描述】:

我在 Travis CI 上构建我的项目。我通过以下方式运行测试:

  1. 使用 index.html 参数运行 Firefox,它会加载尝试重复连接到 websocket 服务器的脚本。
  2. 运行向 Firefox 发送命令的简单 websocket 服务器。
  3. Firefox 中的脚本读取这些命令(它们可能包含一些要测试的 JavaScript 代码),执行 JavaScript 代码。

这在我在本地运行时有效。几周前,这也曾在 Travis 上工作过。然而,用了多年的东西,出乎意料地坏了。 Firefox 没有报告错误,但 node.js 服务器在某些超时时间内没有收到传入连接。我不知道调试问题的方法。在 Firefox 中运行的脚本广泛使用 console.log,但是我无法从 Travis 检索这些日志。有什么方法可以从 CI 服务器上运行的 Firefox 获取一些信息?

注意:我运行的是 Firefox 53。在出现问题后,我尝试升级到最新版本。另外,我曾经在运行 Firefox 之前运行以下命令:

export DISPLAY=:99.0
sh -e /etc/init.d/xvfb start
sleep 10

我试图删除这些行并更多地使用无头,但这没有用。

【问题讨论】:

    标签: firefox travis-ci


    【解决方案1】:

    在 Firefox 中运行的脚本广泛使用 console.log,但是我无法从 Travis 检索这些日志。有什么方法可以从 CI 服务器上运行的 Firefox 获取一些信息?

    Firefox 65+ 支持新的 devtools.console.stdout.content about:config 首选项,您可以将其设置为 true 以使控制台输出转储到标准输出(我相信会出现在 Travis 中)。

    对于早期版本似乎没有好的解决方案:Selenium's driver.get_log() doesn't work in Firefoxother solutions look unsatisfactory to me

    您似乎将index.html 运行为文件:/// URL,in my opinion that's asking for trouble - 我建议花时间设置本地 https:// 服务器,以节省调试不断增加的“安全”限制的时间浏览器为非 https 内容添加。

    如果上述方法没有帮助,请尝试在单独的 repo 中使用最小的测试用例来重现它;如果问题仍然存在,您可以在另一个问题中分享该 repo。

    【讨论】:

    • "about:config preference" - 我该如何设置?我无法访问 Firefox GUI,它是 CI 服务器。
    • 好的,我给了你奖励,但仍然无法使事情顺利进行。您提供的首选项文档的链接没有帮助。我假设我知道 Firefox 安装或配置文件的位置。但是,似乎无法从命令行创建配置文件,例如 Chrome,它在命令行中获取配置文件目录的路径并自动在给定路径创建配置文件。
    • Firefox 的工作方式相同,我刚刚测试过:rm -rf ./my-profile; mkdir ./my-profile && echo "user_pref('a.b.c', 123);" > ./my-profile/user.js && /Applications/Firefox.app/Contents/MacOS/firefox-bin -profile pwd/my-profile -no-remote
    • (显然,您必须知道 Firefox 二进制文件的位置或将其放在 PATH 中才能运行它。) // 上面的命令应该是-profile `pwd`/my-profile,即绝对配置文件目录的路径。
    【解决方案2】:

    您可以使用xvfb 运行vnc,并使用vncviewer 连接到它。这里有更多细节:https://www.alexkras.com/debugging-xvfb-server-with-vnc/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-03
      • 2017-05-25
      • 2017-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多