Как определить любой элемент в iframe/popup в selenium ide?

Я новичок в селене и хочу понять, как определить элемент в iframe или всплывающем окне. В нашем приложении, когда мы нажимаем на кнопку, на той же странице загружается всплывающее окно или iframe. на этой странице мне нужно нажать на кнопку и затем продолжить мои другие действия. Во время записи селен не ожидает загрузки всплывающего окна или встроенного фрейма. Он переходит к следующей команде и терпит неудачу, потому что объект еще не найден, так как iframe/popup все еще загружается.

Следует использовать команды ожидания, чтобы дождаться его загрузки, или использовать некоторые команды выбора.

Я сбит с толку. Я попытался пару команд, как, waitforpopup, selectframe, waitforframetoload, но не смог понять.

Любая помощь в этом была бы отличной!

заранее спасибо

3 ответа

Вот решение, которое сработало для меня:

Сценарий:

  1. Страница загружается с JavaScript, который добавляет iframe в DOM <iframe id="iframeId" />
  2. iframe загружает
  3. Теперь я хочу проверить элемент в iframe <div id="divElement"></div>

Решение:

(Команда> C, Цель> T, Значение> V) Если я не включил, это означает, что оставьте это поле пустым

  • C: открыть | T: /
  • C: waitForElementPresent | T: iframeId | V: 3000
  • C: waitForFrameToLoad | T: iframeId | V: 5000
  • C: выберите кадр | T: iframeId
  • C: assertElementPresent | T: css = div # divElement
  • C: verifyElementPresent | T: css = div # divElement

Ручные команды IDE необходимо будет ввести для завершения вашего сценария.

Чтобы определить элементы во всплывающем окне, вам нужно будет использовать команду "selectPopup", чтобы сфокусироваться во всплывающем окне.

Чтобы идентифицировать элементы внутри iframe, используйте команду "selectFrame" и введите идентификатор iframe в параметр Target. Использование команды "selectFrame" без целевого идентификатора может молча завершиться сбоем, в зависимости от структуры страницы (может иметь несколько фреймов и т. Д.).

Надеюсь, эта информация поможет.

Здесь есть несколько ответов, которые каждый может получить выгоду, но иногда идентификатор iframe может быть динамическим из-за различий в содержимом конкретной ссылки (например, разные платные подписки или пробная версия и т. Д.), И назначение статического идентификатора цели может провалить ваш тест. Лучше всего использовать статический атрибут тега iframe, такой как атрибут класса, чтобы вы могли запускать свой скрипт каждый раз.

Другие вопросы по тегам