如何在同一会话中将 selenium webdriver 从无头模式设置为正常模式?

How to set selenium webdriver from headless mode to normal mode within the same session?

是否可以在将 selenium webdriver 设置为无头模式后将其设置回正常模式?

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

options = Options()
options.headless = True
driver = webdriver.Firefox(options=options)
driver.get(http://whosebug.com)

# set driver back to normal mode

,无法使Chrome最初在headless模式下运行,然后切换回同一会话中的正常模式。

当您使用 ChromeOptions() 配置 ChromeDriver 的实例以跨越新的 Chrome 浏览上下文时 配置在 chromedriver 可执行文件中得到 baked,它将在 WebDriver[=61] 的生命周期内持续存在=] 并且 不可编辑。所以你不能 modify/add 任何 existing/new 配置 通过 ChromeOptions() class 到 WebDriver 当前正在执行的实例。

即使您能够提取 ChromeDriverChromeSession 属性,例如会话 IDCookies UserAgent 和来自已启动的 ChromeDriver[=93= 的其他会话属性] Browsing Session 仍然无法更改 ChromeDriver.

的属性集

更简洁的方法是在 tearDown(){} 方法中调用 driver.quit()close优雅地销毁当前的ChromeDriverChromeBrowser实例,然后跨越一个新的一组 ChromeDriverChrome Browser 具有新配置集的实例。


tl;博士

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

  • Change ChromeOptions in an existing webdriver
  • How do I make Chrome Headless after I login manually