2013-12-16 2 views
0

Я использую веб-редактор Selenium для автоматизации веб-приложения, которое имеет много кадров.Невозможные элементы доступа внутри фреймов в IE, но отлично работают в Chrome и FireFox

Элементы внутри фрейма не идентифицируются при запуске моих сценариев в IE, и я получаю исключение «Невозможно найти элемент с текстом ссылки == тестирование». Но это прекрасно работает в Chrome и Firefox.

Я прошел через много связанных дискуссий и пробовал следующие работы вокруг, но они помогают.

  • Введенное выражение ожидания до и после переключения кадра.
  • Отключен параметр прокси для IE. Измененная настройка IE для отображения как безопасного, так и незащищенного содержимого
  • Отметьте флажок «Разрешить активное содержимое для запуска в файлах на моем компьютере» в разделе «Параметры Интернета» -> «Дополнительно» -> «Безопасность в настройках IE».

Я использую,

Селен WebDriver версия 2.35.0.0 IE версии: 7 Язык программирования: C#

Примечание:

  • Приложение имеет динамическое имя и идентификатор для фреймов, поэтому я использовал индекс для переключения кадров.

Я попытался сохранить приложение, открытое в chrome и IE как html-страницу. Когда я открываю сохраненную страницу html с помощью браузера,

  • Сохраненный от хрома показывает все элементы внутри рамки.

  • Один, сохраненный из IE, не показывает никаких элементов внутри кадра.

Было бы здорово, если бы я получил решение для обработки элементов внутри фреймов.

Я не могу предоставить полный код html, но приложил скриншот части кода html.

Я попытался сохранить полную html-страницу с помощью Chrome и IE. И я вижу в них разницу.

Это моментальный снимок html-кода, который сохраняется с хром. Здесь я вижу «< DIV класс =» мокко «деление, которое имеет раму.

enter image description here

Это снимок HTML кода, который сохраняется от IE. Здесь я не вижу» < div class = "mocha" раздел, а также "< iframe>".

enter image description here

я сомневаюсь, если это может быть причиной проблемы. Дайте мне знать, если я должен предоставить дополнительную информацию.

+0

Спасибо за ваш ответ. Я использую индекс, чтобы найти кадры и связать текст, чтобы найти элементы внутри рамки. Я могу успешно переключиться на фрейм без сообщения об ошибке, но получаю сообщение об ошибке, когда пытаюсь щелкнуть элемент внутри кадра после инструкции SwitchTo(). Я добавил снимок html-кода. – user2797743

ответ

0

Фактическая проблема заключалась в том, что по какой-либо причине идентификация фреймов с использованием индекса не работала должным образом в IE. Это, по-видимому, проблема, связанная с поведением приложения с браузером IE. Поэтому мы пришли к следующему решению для решения этой проблемы.

Шаги: 1. Извлеките все кадры на странице (используя свой класс) в виде списка. 2. Перейдите в список, чтобы получить имя каждого кадра в массиве. 3. Затем переключитесь на соответствующий кадр с использованием имени кадра, сохраненного в массиве.

Смежные вопросы