Кадры не переключаются по номеру индекса - PullRequest
1 голос
/ 10 мая 2019

Я взял нет. кадров как '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;
  }
 }

После переключения 1-го кадра Он не входит во 2-й кадр. Завершено для цикла и без исключений.

Вот фактический результат

Номер индекса кадра 0 Проверка состояния флага Возвращает ложь Выполнено тестов: 1, сбоев: 0, ошибок: 0, пропущено: 0, истекло время: 134.152 с

Ответы [ 2 ]

1 голос
/ 10 мая 2019

Добро пожаловать на 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();
 }
0 голосов
/ 10 мая 2019

Когда вы имеете дело с всплывающими диалоговыми окнами / окнами iframe на вашей веб-странице, тогда driver.switchTo().defaultContent() используется для переключения элемента управления обратно к содержимому по умолчанию в окне.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...