【问题标题】:Webdriver without window popup没有弹出窗口的 Webdriver
【发布时间】:2016-06-16 11:31:30
【问题描述】:

我目前正在编写一个与直播互动的脚本,主要采用screenshots

我正在使用Selenium Webdriver for Python 打开Chromedriver 并从那里开始。

但是,我想把这个行为构建到一个更大的程序中,隐藏打开chromedriver的整个过程,等待流加载然后截图,这样用户只有在完成后才能得到截图。

从我在网上找到的内容来看,无法使用 setVisible 之类的东西在我的脚本中隐藏命令行控制台,我可以看到控制台出现,但我真的必须隐藏网站弹出窗口,所以屏幕截图将在后台拍摄。

是否可以在 Python/Selenium 中这样做,还是必须切换到另一种语言?

【问题讨论】:

  • 所以你想要一个 "headless" 测试?

标签: python selenium webdriver video-streaming selenium-chromedriver


【解决方案1】:

您可以使用像 htmlunit 这样的无头浏览器来运行您的测试,而不会弹出浏览器:https://github.com/SeleniumHQ/htmlunit-driver

【讨论】:

  • 不知道它叫无头浏览器,谢谢提供链接
【解决方案2】:

您需要使用 vb 或 python 创建一个脚本,该脚本将根据其标题关闭弹出窗口。

即使您也可以将它们最小化。 VB中的代码 设置 wshShell = CreateObject("WScript.Shell")

做 ret = wshShell.AppActivate("弹出窗口的标题") 如果 ret = True 那么 wshShell.SendKeys "%N" 退出做 万一 WScript.Sleep 500 循环

【讨论】:

  • 最小化不是我想要的,我需要窗口完全不可见。另外,关闭弹出窗口是否意味着我不能再使用它们了?我仍然需要使用不可见的浏览器窗口截屏。
  • 如果我理解错了请更正但是 htmlunit 驱动程序是无头的,这意味着不会有 UI,所以你不会得到屏幕截图。
  • 我想我不应该把它称为屏幕截图,但我确实需要一张网站内容的图片,而不是在屏幕上显示网站。
  • 是的,您可以使用无头驱动程序确保获得内容
  • @Hillburn 您不能使用无头浏览器拍摄网站内容的任何照片,因为显然浏览器将是无头的,它不会呈现内容,也不会有可拍照的内容。
猜你喜欢
  • 1970-01-01
  • 2013-05-26
  • 1970-01-01
  • 1970-01-01
  • 2012-01-27
  • 1970-01-01
  • 1970-01-01
  • 2010-09-25
  • 2015-09-18
相关资源
最近更新 更多