6

ページ内のすべてのフレームを取得できる Selenium WebDriver の方法はありますか? すべてのウィンドウ ハンドルを取得するメソッドがあるように。

driver.getWindowHandles()
4

2 に答える 2

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.
        }
    }
}

ただし、ページにこれらのオブジェクトが多すぎる場合、コードが少し遅くなる可能性があることを覚えておくことが重要ですが、このソリューションを使用した場合、私のテストでは 100 以上について話しています。

于 2013-02-11T14:32:51.267 に答える
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"));
    }
于 2013-02-11T13:22:28.327 に答える