如何使用 Selenium 和 Python 将 windows ID 转换为人类可读格式

How to convert windows IDs to human readable format using Selenium and Python

我知道如果我想知道我目前打开的windows对应的ID,我在Python上用下面这句话:

current_windows = driver.window_handles
print(current_windows)

输出(假设打开了 2 windows):

['CDwindow-807A80F3D56E82E4A61529E5898AC71C', 'CDwindow-7CEAB7D7E9B701F6279C4B5C4AEE1A29']

而且我也知道,如果我想在driver获取当前页面的标题,我在Python上使用下面这句话:

current_window = driver.title
print(current_window)

输出:

Google

但是,这些windows的ID,我这种凡人是看不懂的,那么如何改进上面的句子,得到那些windows的标题呢?

我的意思是,要获得这样的输出,其中包含在 driver 中打开的当前 windows 的所有标题:

['Google', 'Facebook']

根据 WebDriver Specification of Window Handle:

where,

Each browsing context has an associated window handle which uniquely identifies it. This must be a String and must not be "current".

The web window identifier is the string constant "window-fcc6-11e5-b4f8-330a88ab9d7f".

所以下面命令的输出:

current_windows = driver.window_handles
print(current_windows)

如:

['CDwindow-807A80F3D56E82E4A61529E5898AC71C', 'CDwindow-7CEAB7D7E9B701F6279C4B5C4AEE1A29']

符合规范,既不包含 page title 信息,也不能转换为任何人类可读的格式。

要检索页面标题,唯一的命令是:

print(driver.title)