0

我有一个在同一个屏幕上有多个 iframe 的应用程序。这些 iframe 在每个会话中都有不同的名称,因此我想在应用程序中搜索其中一个名为“Personal”的 iframe 中的按钮。应保存此 iframe-name 以在其他方法中使用。有人知道如何做到这一点吗?

4

1 回答 1

1

请关闭/删除此主题,因为我找到了解决方案:

public WebElement findElement(By locator) {
    driver.switchTo().defaultContent();
    //list all iframes
    List<WebElement> iframeList = driver.findElements(By.tagName(("iframe")));
    final List<WebElement> foundElements = new ArrayList<>();
    iframeList.forEach(iframe -> {

        driver.switchTo().frame(iframe);
        List<WebElement> foundElementList = driver.findElements(locator);
        if (foundElementList.size() > 0) {
            foundElements.addAll(foundElementList);
        } else driver.switchTo().defaultContent();
    });
    return foundElements.get(0);
}
于 2020-01-30T12:45:41.307 回答