Python 3.x 如何使用python脚本在活动打开的浏览器中查找选项卡名称列表

Python 3.x 如何使用python脚本在活动打开的浏览器中查找选项卡名称列表,python-3.x,selenium,selenium-webdriver,Python 3.x,Selenium,Selenium Webdriver,我想在已打开的浏览器中列出所有选项卡标题 我使用了Python和SeleniumWebDriver包,但它正在创建一个新的浏览器会话,并列出选项卡名称,而不是从已经打开的浏览器中列出 我试过使用Python 3.7版本和selenium包 import selenium.webdriver as webdrive path=r"C:\Windows\chromedriver" driver=webdriver.Chrome(executable_path=path) browser.get('h

我想在已打开的浏览器中列出所有选项卡标题

我使用了Python和SeleniumWebDriver包,但它正在创建一个新的浏览器会话,并列出选项卡名称,而不是从已经打开的浏览器中列出

我试过使用Python 3.7版本和selenium包

import selenium.webdriver as webdrive
path=r"C:\Windows\chromedriver"
driver=webdriver.Chrome(executable_path=path)
browser.get('https://www.google.com?q=python#q=python')
length=len(driver.window_handles)
titles=[]
for i in range(length):
driver.switch_to.window(driver.window_handles[i])
titles.append(driver.title)
print(title)

我希望在已经打开的浏览器中输出,而不是新创建的浏览器。

这是不可能的。在selenium的github页面中已经有几个关于此功能的公开问题,所有这些问题都已解决


另一种方法是通过bash按以下方式获取浏览器选项卡的标题:

browser=Firefox
page_title=$(wmctrl -l -p | grep "$browser")
echo "$page_title"

下面是第一个或唯一一个通过python打开的firefox浏览器的最活跃选项卡的标题

import subprocess  
wins = subprocess.run('wmctrl -l', shell=True, stdout=subprocess.PIPE)
title = next(ln for ln in wins.stdout.decode('utf-8').splitlines() if 'Mozilla Firefox' in ln)
print title

除了python提出的方法之外,您还可以执行以下操作:

by copy and past by hand
by Brotab
by Selenium
by xdotool
by javascript from serversite or by code injection from client side