0

同じ画面に複数の iframe を持つアプリケーションがあります。これらの iframe はセッションごとに名前が異なるため、アプリケーション内で「Personal」という名前の iframe の 1 つにあるボタンを検索したいと考えています。この 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 に答える