具有 Selenium 私有模式的 FirefoxProfile
FirefoxProfile with private mode for Selenium
我想为一个网站创建多个 windows,因此我需要为每个网站创建新的身份。我认为私人模式对我来说是个不错的解决方案。
但是旧的方法不会给出结果:
firefox_profile = webdriver.FirefoxProfile()
firefox_profile.set_preference("browser.privatebrowsing.autostart", True)
browser = webdriver.Firefox(firefox_profile=firefox_profile)
def main():
browser.switch_to.new_window('window')
browser.get("https://example.com")
我在码头找不到任何信息,也许你能帮忙
这应该是“新”方式:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--incognito")
service = Service(r"C:\Program Files (x86)\chromedriver.exe")
driver = webdriver.Chrome(service=service, options=chrome_options)
它应该与 Firefox 一样工作。
根据 Selenium 4 beta 1 发行说明:
Deprecate all but Options
and Service
arguments in driver instantiation. (#9125,#9128)
因此您将看到如下错误:
firefox_profile has been deprecated, please pass in an Options object
您必须使用 Options
的实例来传递 FirefoxProfile 首选项,如下所示:
from selenium import webdriver
from selenium.webdriver import Firefox
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.chrome.service import Service
def main():
firefox_options = Options()
firefox_options.set_preference("browser.privatebrowsing.autostart", True)
s = Service('C:\BrowserDrivers\geckodriver.exe')
driver = webdriver.Firefox(service=s, options=firefox_options)
driver.get("https://www.google.com")
if __name__== "__main__" :
main()
浏览器快照:
参考资料
您可以在以下位置找到一些相关的详细讨论:
- DeprecationWarning: firefox_profile has been deprecated, please pass in an Options object
我想出了如何为 firefox 设置私有模式:
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
def main():
firefox_options = Options()
firefox_options.add_argument('-private')
driver = webdriver.Firefox(options=firefox_options)
# driver.get("https://example.com")
if __name__ == "__main__":
main()
我在 get 行中添加了注释,以确保浏览器真正以隐私模式打开。您可以在选项卡名称中看到它。
但它并没有像我预期的那样为每个新 window 提供新身份。
我想为一个网站创建多个 windows,因此我需要为每个网站创建新的身份。我认为私人模式对我来说是个不错的解决方案。 但是旧的方法不会给出结果:
firefox_profile = webdriver.FirefoxProfile()
firefox_profile.set_preference("browser.privatebrowsing.autostart", True)
browser = webdriver.Firefox(firefox_profile=firefox_profile)
def main():
browser.switch_to.new_window('window')
browser.get("https://example.com")
我在码头找不到任何信息,也许你能帮忙
这应该是“新”方式:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--incognito")
service = Service(r"C:\Program Files (x86)\chromedriver.exe")
driver = webdriver.Chrome(service=service, options=chrome_options)
它应该与 Firefox 一样工作。
根据 Selenium 4 beta 1 发行说明:
Deprecate all but
Options
andService
arguments in driver instantiation. (#9125,#9128)
因此您将看到如下错误:
firefox_profile has been deprecated, please pass in an Options object
您必须使用 Options
的实例来传递 FirefoxProfile 首选项,如下所示:
from selenium import webdriver
from selenium.webdriver import Firefox
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.chrome.service import Service
def main():
firefox_options = Options()
firefox_options.set_preference("browser.privatebrowsing.autostart", True)
s = Service('C:\BrowserDrivers\geckodriver.exe')
driver = webdriver.Firefox(service=s, options=firefox_options)
driver.get("https://www.google.com")
if __name__== "__main__" :
main()
浏览器快照:
参考资料
您可以在以下位置找到一些相关的详细讨论:
- DeprecationWarning: firefox_profile has been deprecated, please pass in an Options object
我想出了如何为 firefox 设置私有模式:
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
def main():
firefox_options = Options()
firefox_options.add_argument('-private')
driver = webdriver.Firefox(options=firefox_options)
# driver.get("https://example.com")
if __name__ == "__main__":
main()
我在 get 行中添加了注释,以确保浏览器真正以隐私模式打开。您可以在选项卡名称中看到它。
但它并没有像我预期的那样为每个新 window 提供新身份。