如何使用Selenium WebDriver在页面中获取帧名称

Aru*_*run 6 selenium selenium-webdriver

在Selenium WebDriver中是否有任何方法可以获取页面中的所有框架?就像我们有获取所有窗口句柄的方法一样.

driver.getWindowHandles()
Run Code Online (Sandbox Code Playgroud)

aim*_*ire 7

这可能是你想要的:

public void getIframe(final WebDriver driver, final String id) {
    final List<WebElement> iframes = driver.findElements(By.tagName("iframe"));
    for (WebElement iframe : iframes) {
        if (iframe.getAttribute("id").equals(id)) {
        // TODO your stuff.
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,重要的是要提醒一下,如果您的页面中有太多这些对象,代码可能会变慢一些,但在使用此解决方案时我在测试中谈论超过100个.


Man*_*dan 5

试试这个代码:

    //Assume driver is initialized properly. 
    List<WebElement> ele = driver.findElements(By.tagName("frame"));
    System.out.println("Number of frames in a page :" + ele.size());
    for(WebElement el : ele){
      //Returns the Id of a frame.
        System.out.println("Frame Id :" + el.getAttribute("id"));
      //Returns the Name of a frame.
        System.out.println("Frame name :" + el.getAttribute("name"));
    }
Run Code Online (Sandbox Code Playgroud)