如何使用Google Chrome和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 

有办法做到这一点吗?

,将不可能在无头模式下打开谷歌chrome,并向前切换到有头


深潜

当您使用ChromeOptions()配置ChromeDriver的实例时,在启动新的Chrome浏览会话过程中,该配置会被烘焙到ChromeDriver可执行文件中,并将持续到WebDriver的生命周期不可编辑。因此,您无法将任何进一步的ChromeOptions添加到当前正在执行的WebDriver实例中。

即使您能够从已经启动的ChromeDriverChrome浏览会话中提取ChromeDriverChromeSession属性,例如Session IDCookiesUserAgent以及其他会话属性,您仍然无法更改铬浏览会话的属性集。

更干净的方法是在tearDown(){}方法中调用driver.quit(),以关闭销毁当前ChromeDriverChrome浏览器实例,然后使用新的一组配置跨越一组新的ChromeDriverChrome浏览器实例。


tl;dr

你可以在中找到一些相关的讨论

  • 如何在同一会话中将selenium网络驱动程序从无头模式设置为正常模式
  • 更改现有网络驱动程序中的ChromeOptions

相关内容

  • 没有找到相关文章

最新更新