【发布时间】:2021-04-28 19:54:48
【问题描述】:
我正在尝试在 Selenium 的同一浏览器窗口中打开多个选项卡。如果我使用 Firefox 配置文件,我将无法打开多个选项卡。选项卡在没有配置文件的情况下正常打开。我搜索了很多,但可用的答案是将选项卡作为单独的窗口打开。我所追求的是使用 Firefox 配置文件在 Firefox 中同一窗口中的多个选项卡。
系统信息:
Windows7
Python 3.7
火狐 84
硒 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 +"');")
参考资料:
Open web in new tab Selenium + Python
Selenium multiple tabs at once
Python -- Opening multiple tabs using Selenium
Open multiple tabs in selenium using python
Open multiple tabs in selenium using python
Selenium Switch Tabs
https://gist.github.com/lrhache/7686903
https://www.lambdatest.com/blog/python-selenium-switch-tabs/
【问题讨论】:
标签: python python-3.x selenium geckodriver selenium-firefoxdriver