Привет,
мы столкнулись ещё с одной проблемой.
Ситуация:
IEDriverserver 64bit.
В MS CRM сделан modalwindow в катором есть iframe. У него сначало src пустой. Он вставляеться потом с javascript.
Сам CRM расположен на другом сервере чем источник iframe. HTML в самом iframe генерируетсья тоже динамически с javascript.
Проблема: когда переходим на modalwindow и переходим на iframe - oн оказиваетсья пустом или IEDriverServer рухнет (рандом). Рухнет в момент исполнения driver.getPageSource().
Такое чувство что ето связано с разними доменами.
Где искать разгадки?
Что-то меня укусило, я сел пересматривать тесты, которые были написаны где-то около полугода назад и нашел интересную особенность: они не тестируют гиперссылки. Но при этом они занимают время.
Как же так вышло? Достаточно просто. Чтобы быть уверенными в том, что по ссылке можно перейти (без перехода -- для этого есть отдельный тест), нужно, чтобы выполнялись условия:
1. Проверить, что атрибут disabled тега <a> установлен в false.
2. У тега <a> должен быть текст или картинка
3. Если п.2. не выполняется, внутри ссылки должен быть "отображаемый" тег. "Отображаемый" - это <div/span> с текстом или картинкой (картинка выставлена стилями CSS), или тег с текстом.
4. Скорее всего, пп 1-3 не исчерпывающие :)
На практике проверялся только п.1. Но если у тега <a> не будет текста, а внутри ничего не будет -- кликнуть по такой ссылке невозможно, даже если disabled == false
Выходы из такой ситуации я вижу такие:
1. Просто взять и перейти по ссылке, потом нажать Back в браузере. Самый простой, но самый долгий по времени
2. Спросить у разработчиков, как они собираются реализовывать ссылки, по которым невозможно перейти. В этой ситуации снижается количество возможных вариантов. Правда, всегда есть вероятность, что разработчики не будут следовать договоренности по самым разным причинам (помните закон Мерфи?).
3. Реализовывать достаточно сложную логику, описанную выше