如何使用 Google Chrome 和 Selenium 从无头模式切换到正常模式?

How can I switch from headless mode to normal mode using Google Chrome and Selenium?

我正在寻找一种解决方案,可以在无头模式下使用 selenium 打开 chrome 浏览器,执行一些操作,然后在同一浏览器中以 normal 模式切换。

例如:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("headless") 
browser =  webdriver.Chrome('C:/chromedriver', options=chrome_options) 
browser.get("https://www.google.de/")

# Do some actions in headless mode
browser.find_element_by_css_selector("#L2AGLb > div").click()
browser.find_element_by_css_selector("body > div.L3eUgb > div.o3j99.ikrT4e.om7nvf > form > div:nth-child(1) > div.A8SBwf > div.RNNXgb > div > div.a4bIc > input").send_keys("Python rocks")
browser.find_element_by_css_selector("body > div.L3eUgb > div.o3j99.ikrT4e.om7nvf > form > div:nth-child(1) > div.A8SBwf > div.FPdoLc.lJ9FBc > center > input.gNO89b").send_keys(Keys.ENTER)

# Open Browser 

有办法吗?

,将无法在 headless 模式下打开 并向前移动到 模式。


深入探讨

当您使用 ChromeOptions() 配置 ChromeDriver 的实例时,在启动新 [=30= 的过程中]Chrome 浏览 Session 配置会 bakedchromedriver 可执行文件中,并将持续到WebDriver 的生命周期并且 不可编辑。因此,您不能向当前正在执行的 ChromeOptions 添加任何进一步的 WebDriver 实例。

即使您能够提取 ChromeDriverChromeSession 属性,例如Session IDCookiesUserAgent 和其他 session 属性已经启动ChromeDriverChrome浏览Session你还是不会能够更改 ChromeDriver.

的属性集

更简洁的方法是在 tearDown(){} 方法中调用 driver.quit()close销毁当前ChromeDriverChrome浏览器实例然后使用新的一组配置跨越一组新的 ChromeDriverChrome Browser 实例.


tl;博士

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