我正在寻找一种解决方案,以无头模式打开带有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,并向前切换到有头 当您使用 即使您能够从已经启动的ChromeDriver和Chrome浏览会话中提取ChromeDriver和ChromeSession属性,例如Session ID、Cookies和UserAgent以及其他会话属性,您仍然无法更改铬浏览会话的属性集。 更干净的方法是在 你可以在中找到一些相关的讨论深潜
ChromeOptions()
配置ChromeDriver的实例时,在启动新的Chrome浏览会话过程中,该配置会被烘焙到ChromeDriver可执行文件中,并将持续到WebDriver的生命周期且不可编辑。因此,您无法将任何进一步的ChromeOptions添加到当前正在执行的WebDriver实例中。tearDown(){}
方法中调用driver.quit()
,以关闭并销毁当前ChromeDriver和Chrome浏览器实例,然后使用新的一组配置跨越一组新的ChromeDriver和Chrome浏览器实例。tl;dr