Python Selenium Firefox:使用Firefox配置文件时无法打开多个选项卡

Python Selenium Firefox:使用Firefox配置文件时无法打开多个选项卡,python,python-3.x,selenium,geckodriver,selenium-firefoxdriver,Python,Python 3.x,Selenium,Geckodriver,Selenium Firefoxdriver,我试图在Selenium中的同一浏览器窗口中打开多个选项卡。如果使用firefox配置文件,我无法打开多个选项卡。选项卡在没有配置文件的情况下正常打开。我已经搜索了很多,但可用的答案是打开标签作为单独的窗口。我所追求的是使用Firefox配置文件在Firefox的同一窗口中创建多个选项卡 系统信息: Windows7 Python 3.7 Firefox84 硒3.141 我已经创建了一个测试firefox配置文件 无法使用Firefox配置文件的代码-选项卡作为单独的窗口打开 from sel

我试图在Selenium中的同一浏览器窗口中打开多个选项卡。如果使用firefox配置文件,我无法打开多个选项卡。选项卡在没有配置文件的情况下正常打开。我已经搜索了很多,但可用的答案是打开标签作为单独的窗口。我所追求的是使用Firefox配置文件在Firefox的同一窗口中创建多个选项卡

系统信息:

Windows7
Python 3.7
Firefox84
硒3.141

我已经创建了一个测试firefox配置文件

无法使用Firefox配置文件的代码-选项卡作为单独的窗口打开

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile
from selenium.webdriver.firefox.options import Options as FirefoxOptions
from selenium.webdriver.common.keys import Keys

binary = FirefoxBinary('C:\\Program Files\\Mozilla Firefox\\firefox.exe')
firefox_capabilities = webdriver.DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
fp = webdriver.FirefoxProfile('C:\\Users\\john\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\0kjv3jas.test')
fp.update_preferences()
first_link = "https://google.com"
second_link = "https://reddit.com"
driver = webdriver.Firefox(capabilities=firefox_capabilities, firefox_binary=binary, firefox_profile=fp, executable_path='C:\\WebDriver\\bin\\geckodriver.exe')
driver.get(first_link)
driver.execute_script("window.open('" + second_link +"');")
没有Firefox配置文件的代码可以正常工作-正常创建选项卡

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile
from selenium.webdriver.firefox.options import Options as FirefoxOptions
from selenium.webdriver.common.keys import Keys

binary = FirefoxBinary('C:\\Program Files\\Mozilla Firefox\\firefox.exe')
firefox_capabilities = webdriver.DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
first_link = "https://google.com"
second_link = "https://reddit.com"
driver = webdriver.Firefox(capabilities=firefox_capabilities, firefox_binary=binary, executable_path='C:\\WebDriver\\bin\\geckodriver.exe')
driver.get(first_link)
driver.execute_script("window.open('" + second_link +"');")
参考资料:








删除firefox配置文件,它工作正常,您调用的是一个空配置文件,因此不需要它

driver = webdriver.Firefox(capabilities=firefox_capabilities, firefox_binary=binary,  options=options, executable_path='C:\\WebDriver\\bin\\geckodriver.exe')
如果要将其与配置文件一起使用,请使用:

firefox_capabilities = webdriver.DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
fp = webdriver.FirefoxProfile()

fp.DEFAULT_PREFERENCES["frozen"]["browser.link.open_newwindow"] = 3

Thnx,它在删除空轮廓后工作。如果我添加了一个配置文件,(我已经更新了代码),然后它返回到suare one,选项卡将作为新窗口打开。@depar更新了answruse fp.DEFAULT\u首选项[“freezed”][“browser.link.open\u newwindow”]=3这很神奇。我已经将
browser.link.open_newwindow
更改为
about:config
中的3,但从未想到Selenium会将配置文件复制到临时
rust
。感谢您指出这一点,
browser.link.open\u newwindow
是一个冻结的首选项,这意味着不能使用
profile.set\u首选项(“browser.link.open\u newwindow”,3)