Невозможно переключиться на iFrame, который находится внутри тега <section> - PullRequest
1 голос
/ 09 июля 2019

Я получаю исключение NoSuchFrame при попытке переключиться на iFrame, заключенный в тег <section>. Может ли кто-нибудь помочь мне в этом, пожалуйста?

Я пытаюсь перейти на iFrame для теста на селен. Я использовал driver.switchTo() метод для переключения на iFrame.

<section> HTML:

<section id="modal-root">
 <div class="modal-wrapper">
   <div id="#####" class="modal-container modal-enter-done">
     <div class="modal ####" role="dialog">
    <button type="button" aria-label="Close Modal" class="button-icon 
        modal-close">
    <span class="icon icon-x">
    <svg width="24" height="24" viewBox="0 0 24 24" fill="none" 
         role="presentation">
      <path d="M8.41421 7L13.7071 12.2929C14.0976 12.6834 14.0976 13.3166 
           13.7071 13.7071C13.3166 14.0976 12.6834 14.0976 12.2929 13.7071L7 
           8.41421L1.70711 13.7071C1.31658 14.0976 0.683418 14.0976 0.292893
       13.7071C-0.0976311 13.3166 -0.0976311 12.6834 0.292893 
           12.2929L5.58579 7L0.292893 1.70711C-0.0976311 1.31658 
      -0.0976311 0.683418 0.292893 0.292893C0.683418 -0.0976311 1.31658 
          -0.0976311 1.70711 0.292893L7 5.58579L12.2929 0.292893C12.6834 
          -0.0976311 13.3166 -0.0976311 13.7071 0.292893C14.0976 0.683418 
           14.0976 1.31658 13.7071 1.70711L8.41421 7Z" transform="translate(5 
           5)" fill="black">
      </path>
    </svg>
      </span>
    </button>
    <div class="modal-body">
      <div class="#####">
    <iframe title="######" id="#####" name="#####"src="######">
    </iframe>
     </div>
   </div>
 </div>
</div>
<div class="modal-overlay">
</div>
</div>
</section>

Я пытаюсь переключиться на iFrame в моем тесте. Я использую следующий фрагмент:

WebDriver driver = new ChromeDriver();
driver.get(url);
driver.manage().window().maximize();
driver.switchTo().frame(iFrame_id);

Я получаю ниже исключения:

org.openqa.selenium.NoSuchFrameException: элемент кадра не найден имя или идентификатор iFrame_id

Я не уверен, смогу ли я напрямую переключиться на iFrame, поскольку он заключен в тег <section>.

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 09 июля 2019

Мне удалось сделать эту работу с помощью предложений @ JeffC по использованию id или name. Я использовал ID, и единственное изменение, которое я сделал в своем коде, таково:

Вместо:

driver.switchTo().frame(iFrame_id) 

... Я использовал:

 driver.switchTo().frame(findElement(By.id(iFrame_id)))

Спасибо всем, кто помог!

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