phantomjs - 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
了一个等待功能,使其在页面加载后停留在页面上的确切时间。
解决方案
由于没有人回答,我会在更多的研究和逻辑思考之后尝试回答我自己的问题。
主要问题:似乎没有超时,但如果需要可以使用--timeout X
。即使它并不完美,因为无论页面是否完全加载,它都会独立运行。
至于firefox,它有问题。-new-instance
(当你已经在 Firefox 上时进行无头运行)不工作并且-no-remote
没有帮助。Firefox 仅在仅运行一个实例时才有效。因此,如果它是您正在使用的 PC 并且您也想运行测试,那么 firefox 不适合您。Headless 仅在没有其他 firefox 实例运行时运行,而 chrome 运行良好。
即使尝试了多种解决方案,PhantomJS 也无法正常工作。
最佳解决方案?使用铬。需要便携吗?使用铬并使用无头。或者编写你的软件来使用基于铬的cefsharp。包含所有库的浏览器将在 120-200MB 左右。相当大的便携,但它的工作。与便携式铬或铬相同。CefSharp 有权将您喜欢的任何内容集成到浏览器中,因为它是一个……浏览器。
推荐阅读
- postgresql - Odoo 10 没有在 PostgreSQL 9.5 中备份数据库。显示“SQL 状态:22008。account_bank_statement_line 上的时间戳超出范围。”
- javascript - 如何修复 Youtube API 的 getPlayerState 以返回 int 值?
- java - Spring AOP:在Around 建议中,我可以多次调用proceed() 吗?
- react-navigation - 当我们在 React-Native 的抽屉导航中单击标题中的图标时,如何在主屏幕顶部加载另一个屏幕
- webpack - 如何为 babel-preset-env 的一组指定目标列出应用转换?
- python - 如何在 JSONField 中存储数据
- angular - 如何在 Angular 7 的表格上使用 Ngx 分页
- javascript - 如果我们假设所有的网络浏览器都理解