Selenium 不按索引编号切换的帧

Selenium 不按索引编号切换的帧,selenium,iframe,Selenium,Iframe,我将帧的数量作为“frsize”,并开始循环以按索引切换帧。但它并没有切换到另一个指数 Boolean flag=null; List<WebElement> frames=driver.findElements(By.tagName("iframe")); int frsize=frames.size(); for(int i=0;i<frsize;i++) { driver.switchTo().frame(i); System.out.println

我将帧的数量作为“frsize”,并开始循环以按索引切换帧。但它并没有切换到另一个指数

 Boolean flag=null;
 List<WebElement> frames=driver.findElements(By.tagName("iframe"));
 int frsize=frames.size();

 for(int i=0;i<frsize;i++) 
 {
  driver.switchTo().frame(i);
  System.out.println("Frame Index Number "+i);
  flag = driver.findElements(By.xpath(locatorValue)).size()!= 0;
  System.out.println("Checking Flag Condition");
  if(flag==true)
  {
   System.out.println("It returns true");
   return true;
  }
  else
  {
   System.out.println("It returns false");
   return false;
  }
 }
Boolean标志=null;
列表帧=driver.findElements(按.tagName(“iframe”);
int frsize=frames.size();
对于(inti=0;i欢迎来到SO

添加
driver.switchTo().defaultContent();
作为for循环的最后一步。这样,上下文将始终更改为parent,然后更改为循环中的iframe

 Boolean flag=null;
 List<WebElement> frames=driver.findElements(By.tagName("iframe"));
 int frsize=frames.size();

 for(int i=0;i<frsize;i++) 
 {
  driver.switchTo().frame(i);
  System.out.println("Frame Index Number "+i);
  flag = driver.findElements(By.xpath(locatorValue)).size()!= 0;
  System.out.println("Checking Flag Condition");
  if(flag==true)
  {
   System.out.println("It returns true");
   return true;
  }
  else
  {
   System.out.println("It returns false");
   return false;
  }
  driver.switchTo().defaultContent();
 }
Boolean标志=null;
列表帧=driver.findElements(按.tagName(“iframe”);
int frsize=frames.size();

对于(int i=0;i当您处理网页中的弹出对话框/iframe窗口时,则使用
driver.switch to().defaultContent()
将控件切换回窗口中的默认内容。

如果
driver.switch to().defaultContent();
不起作用,则使用
driver.switch to().parentFrame();
。如果您认为问题已经解决,请单击我的答案左侧向下投票按钮下方的空心复选标记,接受答案。请随意向上投票:-)很抱歉,它删除了错误,但仍然不起作用。它正在终止。您的frsize是多少?您确定Locator值是正确的吗?如果我没有错,您可能只有一帧?Locator值是正确的。我验证了它,该页中有3帧。我正在将输出粘贴到此处。帧数是:3帧索引编号0检查Flag条件它返回错误测试运行:1,失败:0,错误:0,跳过:0,经过的时间:92.277秒抱歉,它删除了错误但仍不工作。它将终止循环