如何使用 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 模式下打开 google-chrome 并向前移动到 头模式。
深入探讨
当您使用 ChromeOptions()
配置 ChromeDriver 的实例时,在启动新 [=30= 的过程中]Chrome 浏览 Session 配置会 baked 到 chromedriver 可执行文件中,并将持续到WebDriver 的生命周期并且 不可编辑。因此,您不能向当前正在执行的 ChromeOptions 添加任何进一步的 WebDriver 实例。
即使您能够提取 ChromeDriver 和 ChromeSession 属性,例如Session ID、Cookies、UserAgent 和其他 session 属性已经启动ChromeDriver和Chrome浏览Session你还是不会能够更改 ChromeDriver.
的属性集
更简洁的方法是在 tearDown(){}
方法中调用 driver.quit()
以 close 和 销毁当前ChromeDriver和Chrome浏览器实例然后使用新的一组配置跨越一组新的 ChromeDriver 和 Chrome Browser 实例.
tl;博士
您可以在以下位置找到一些相关讨论:
我正在寻找一种解决方案,可以在无头模式下使用 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 模式下打开 google-chrome 并向前移动到 头模式。
深入探讨
当您使用 ChromeOptions()
配置 ChromeDriver 的实例时,在启动新 [=30= 的过程中]Chrome 浏览 Session 配置会 baked 到 chromedriver 可执行文件中,并将持续到WebDriver 的生命周期并且 不可编辑。因此,您不能向当前正在执行的 ChromeOptions 添加任何进一步的 WebDriver 实例。
即使您能够提取 ChromeDriver 和 ChromeSession 属性,例如Session ID、Cookies、UserAgent 和其他 session 属性已经启动ChromeDriver和Chrome浏览Session你还是不会能够更改 ChromeDriver.
的属性集更简洁的方法是在 tearDown(){}
方法中调用 driver.quit()
以 close 和 销毁当前ChromeDriver和Chrome浏览器实例然后使用新的一组配置跨越一组新的 ChromeDriver 和 Chrome Browser 实例.
tl;博士
您可以在以下位置找到一些相关讨论: