【问题标题】:Why does a browser not appear when I run in headless mode?为什么我在无头模式下运行时没有出现浏览器?
【发布时间】:2020-08-21 14:33:41
【问题描述】:

我正在关注一个 Selenium 教程,我应该在其中以无头模式运行 Firefox。随后尝试获取 URL。问题是当我运行browser.get('https://www.google.com') 时,页面没有像我没有使用无头模式时那样加载。

如果有帮助,这里是代码


from selenium.webdriver import Firefox
from selenium.webdriver.firefox.options import Options

opts = Options()
opts.headless = True
assert opts.headless
browser = Firefox(options=opts)
browser.get('https://www.google.com')

【问题讨论】:

  • 答案就在你的问题中:headless browser can't be seen.Headless 就是为了这个。

标签: selenium


【解决方案1】:

无头测试是一种在没有头的情况下运行浏览器 UI 测试的方法,在这种情况下,这意味着没有浏览器 UI,也没有任何形式的 GUI。这很有用,因为在运行测试时,尤其是在 CI 环境中,没有人“观看”视觉效果,因此不需要浏览器 GUI 的额外开销。

https://blog.logrocket.com/introduction-to-headless-browser-testing-44b82310b27c/

【讨论】:

    【解决方案2】:

    浏览器自动化

    浏览器自动化已成为构建、测试和部署现代网站的重要组成部分。自动化设置范围从在本地机器上运行的脚本到在运行 JenkinsCircleCITeamCityBamboo 的 CI 服务器中的部署GitLabBuddyTravis CICodeshipGoCDWerckerSemaphore NevercodeSpinnakerBuildbot 等以及云端。浏览器长期以来一直支持通过第三方驱动软件进行某种程度的自动化控制。

    @Potch 在他的article 中用简单的话解释了无头的概念,即浏览器的核心是网络用户界面,尤其是图形用户界面。这给自动化带来了一些问题。在某些环境中,可能没有可用的图形显示,或者可能希望在被控制时根本不显示浏览器。这需要虚拟显示软件等工具才能正常运行,从而增加了复杂性。

    的想法付诸实践之前,在不显示 UI 的情况下加载网页的最佳方式是基于 WebKit 的 PhantomJS。它仍然是一个能够在官方浏览器中运行自动化浏览器测试的有价值的工具,因此提供无头模式是很有价值的。


    无头模式下的 Firefox

    在无头模式下,Firefox 正常运行,减去任何可见的 UI 组件可见。虽然对网上冲浪不是那么有用,但它通过自动化测试发挥了作用。


    参考文献

    您可以在以下位置找到一些相关讨论:

    【讨论】:

      猜你喜欢
      • 2013-02-23
      • 2012-04-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-15
      • 1970-01-01
      • 2014-12-19
      • 1970-01-01
      相关资源
      最近更新 更多