我有一个非常复杂的html页面。
<html>
<head></head>
<body>
<iframe> A </iframe>
<table>
<div>
<span>
<div> <iframe> B </iframe> </div>
<style>
<div>
<div>
当我尝试在iframe A中找到一个元素时,它会转到另一个iframe。我尝试使用driver.switchTo()。frame(0)切换到iframe但没有用。
当我尝试使用findElements方法获取所有iframe时,它只返回一个iframe(B)。
答案 0 :(得分:2)
答案取决于你想对iframe列表做些什么。
如果您想要所有列表,可以尝试使用递归函数。
public void getAlliFrames(){
List<WebElement> iframes = driver.findElements(By.tagName("iframe"));
if(iframe.count() > 0){
driver.switchTo().frame(iframe.get(0));
getAlliFrames();
}else{
System.out.println("No more iframes");
}
}
PS:这是一个未经测试的代码,仅供您参考。