WebDriver 的 GetTitle() 方法不适用于 Frame Tag Doc

GetTitle() Method of WebDriver is not working for Frame Tag Doc

我试图在切换后获取框架,但它仍然返回主网页的标题。共享代码和 DOM 框架的详细信息:

    WebDriver driver  = new ChromeDriver();

    driver.get("http://www.dwuser.com/education/content/the-magical-iframe-tag-an-introduction/");

    List<WebElement> IframaList=driver.findElements(By.tagName("iframe"));

    System.out.println("total number of frame is "+IframaList.size());

    for(WebElement e : IframaList){
        System.out.println( e.getAttribute("name"));
    }

    driver.switchTo().frame("myDemoFrame");

    

    System.out.println(driver.getTitle());

Dom结构:

注意:我检查了 gettitle() 的 RemoteWebdriver 实现,它说它 returns 页面的标题。是否仅表示网页的标题?

函数 getTitle() 仅 returns 顶级标题

有关详细信息,请参阅下面的文档。

This command returns the document title of the current top-level browsing context, equivalent to calling document.title.

https://www.w3.org/TR/webdriver1/#get-title

切换到<iframe>后,您可以通过以下方法获取标题:

driver.switchTo().frame("myDemoFrame");
if(driver.findElements(By.tagName("title")).size()>0) {
    String currentTitle = driver.findElement(By.tagName("title")).getAttribute("innerHTML");
    System.out.println(currentTitle);
}