首页 > 解决方案 > Chrome 无头 - 火狐

问题描述

我正在为我的网站开发一个监控工具来记录数据。实际的日志记录是在服务器上进行的。我的目标是根据用户在网站上停留的时间来计算统计数据。

主要问题:我使用了 chrome headless command --remote-debugging-port=80。我得到了长达 10 分钟的日志。完美运行。但是,如果离开工作,它会工作多久?有默认超时吗?如果是,我该如何更改?如果我想在页面加载完成 30 分钟后运行它?

我正在尝试在 firefox 上做同样的事情(尝试使用 PhantomJS,但即使 useragent 设置为 firefox,它也没有正确加载页面)但是当我尝试启动无头模式时,firefox 只会抛出一个银行页面。我使用“firefox -headless”并尝试捕获屏幕截图。它只是退出了我当前打开的 Firefox 选项卡,而没有捕获任何图像。任何的想法? 使用 Firefox 量子 59.0。我不想使用硒。

PhantomJS 解决方案也很棒。目前我只想收集日志。因此,它只需要在页面上运行所有 javascript(一个 jquery)代码,然后使用 ajax 发送数据。我尝试page.onLoadFinished了一个等待功能,使其在页面加载后停留在页面上的确切时间。

标签: phantomjsheadless-browsergoogle-chrome-headlessfirefox-headless

解决方案


由于没有人回答,我会在更多的研究和逻辑思考之后尝试回答我自己的问题。

主要问题:似乎没有超时,但如果需要可以使用--timeout X。即使它并不完美,因为无论页面是否完全加载,它都会独立运行。

至于firefox,它有问题。-new-instance(当你已经在 Firefox 上时进行无头运行)不工作并且-no-remote没有帮助。Firefox 仅在仅运行一个实例时才有效。因此,如果它是您正在使用的 PC 并且您也想运行测试,那么 firefox 不适合您。Headless 仅在没有其他 firefox 实例运行时运行,而 chrome 运行良好。

即使尝试了多种解决方案,PhantomJS 也无法正常工作。

最佳解决方案?使用铬。需要便携吗?使用铬并使用无头。或者编写你的软件来使用基于铬的cefsharp。包含所有库的浏览器将在 120-200MB 左右。相当大的便携,但它的工作。与便携式铬或铬相同。CefSharp 有权将您喜欢的任何内容集成到浏览器中,因为它是一个……浏览器。


推荐阅读