Untitled
unknown
plain_text
a year ago
2.6 kB
13
Indexable
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;
}
}
Editor is loading...
Leave a Comment