Untitled

mail@pastecode.io avatar
unknown
plain_text
a month ago
2.6 kB
5
Indexable
Never
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;

import java.util.List;

public class SeleniumIFrameExample {

    public static void main(String[] args) {
        // Configuração do WebDriver (certifique-se de que o caminho para o ChromeDriver está correto)
        System.setProperty("webdriver.chrome.driver", "caminho/para/chromedriver");
        WebDriver driver = new ChromeDriver();

        // Abre a página com iframes
        driver.get("URL_DA_PAGINA_COM_IFRAME");

        // Chama o método para encontrar o elemento pelo XPath nos iframes
        WebElement element = findElementInIframes(driver, "XPATH_DO_ELEMENTO_DESEJADO");

        if (element != null) {
            System.out.println("Elemento encontrado!");
        } else {
            System.out.println("Elemento não encontrado em nenhum iframe.");
        }

        // Fecha o navegador
        driver.quit();
    }

    /**
     * Método para listar todos os iframes, iterar sobre eles e procurar um elemento pelo XPath.
     * @param driver WebDriver em uso.
     * @param xpath String com o XPath do elemento desejado.
     * @return WebElement encontrado, ou null se não for encontrado.
     */
    public static WebElement findElementInIframes(WebDriver driver, String xpath) {
        // Obtém a lista de todos os iframes na página
        List<WebElement> iframes = driver.findElements(By.tagName("iframe"));

        // Itera sobre todos os iframes
        for (WebElement iframe : iframes) {
            try {
                // Troca para o iframe atual
                driver.switchTo().frame(iframe);

                // Tenta encontrar o elemento dentro do iframe
                List<WebElement> elements = driver.findElements(By.xpath(xpath));

                if (!elements.isEmpty()) {
                    // Se o elemento for encontrado, retorna o primeiro elemento encontrado
                    return elements.get(0);
                }

                // Volta ao conteúdo principal antes de continuar para o próximo iframe
                driver.switchTo().defaultContent();
            } catch (Exception e) {
                e.printStackTrace();
                // Volta ao conteúdo principal no caso de erro
                driver.switchTo().defaultContent();
            }
        }

        // Se o elemento não for encontrado em nenhum iframe, retorna null
        return null;
    }
}
Leave a Comment