有没有办法在不切换的情况下获取浏览器的所有选项卡标题?

Nan*_*n A 4 java selenium selenium-webdriver

我可以通过切换到每个选项卡来获取所有打开的选项卡标题。就像下面这样,

代码

ArrayList<String> tabs = new ArrayList<String>(driver.getWindowHandles());
    
    for(int i = 0; i < tabs.size(); i++) {
        driver.switchTo().window(tabs.get(i));
        System.out.println(driver.getTitle());
    }
Run Code Online (Sandbox Code Playgroud)

输出

Google
Home
Run Code Online (Sandbox Code Playgroud)

有没有什么办法可以不切换就获得所有的称号呢?像下面这样的东西,

for(String tab : tabs){
  System.out.println(tab)
}
Run Code Online (Sandbox Code Playgroud)

但上面的代码返回选项卡 ID。

CDwindow-54AD3D4D73FFC6A60F79C1E56B131C2B
CDwindow-046B8E378703FEAAD1002BF3F835BAB7 
Run Code Online (Sandbox Code Playgroud)

Deb*_*anB 5

窗把手

窗口句柄是保存所有窗口地址的唯一标识符。它作为一个指向窗口的指针,可以返回字符串值。假设每个浏览器都有一个唯一的窗口句柄。该窗口句柄函数有助于检索所有窗口的句柄。

因此,Selenium驱动的WebDriver可以从浏览上下文中收集窗口句柄,即使无需单独关注它们。


页面标题

页面标题是标签,是网页的简短描述,出现在浏览<title>器窗口的顶部,是.<header>

因此Selenium驱动的WebDriver需要关注特定浏览上下文来提取页面标题


结论

所以没有办法在不切换到特定选项卡的情况下获取浏览器的所有选项卡标题。