我正在尋找一種解決方案,以無頭模式打開帶有 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
有沒有辦法做到這一點?
uj5u.com熱心網友回復:
不行,打不開谷歌瀏覽器在無頭模式和向前移動到有頭模式。
深潛
當您使用配置ChromeDriverChromeOptions()的實體時,在啟動新的Chrome 瀏覽會話的程序中,配置會被烘焙到chromedriver可執行檔案中,并將持續到WebDriver的生命周期并且不可編輯。因此,您無法將任何其他ChromeOptions添加到當前正在執行的WebDriver實體中。
即使您能夠從已經啟動的ChromeDriver和Chrome 瀏覽會話中提取ChromeDriver和ChromeSession屬性,例如Session ID、Cookies、UserAgent和其他會話屬性,您仍然無法更改ChromeDriver的屬性集。
driver.quit()一種更簡潔的方法是呼叫tearDown(){}方法來優雅地關閉和銷毀當前的ChromeDriver和Chrome 瀏覽器實體,然后使用新的配置集跨越一組新的ChromeDriver和Chrome 瀏覽器實體。
tl; 博士
您可以在以下位置找到一些相關的討論:
- 如何在同一會話中將 selenium webdriver 從無頭模式設定為正常模式?
- 更改現有網路驅動程式中的 ChromeOptions
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/451253.html
標籤:Python 硒 谷歌浏览器 硒铬驱动程序 谷歌浏览器无头
