Internet Explorer не будет запускать новые окна во время теста - PullRequest
1 голос
/ 21 сентября 2011

У меня сейчас проблемы с тем, что окно не открывается во время тестов в Internet Explorer. Я использую Selenium-RC 2.6.0, программирую свои тесты на C # и запускаю их с помощью NUnit.

Все мои тесты работают в Firefox и Chrome, но в Internet Explorer 9, когда selenium выполняет щелчок по ссылке (ссылка запускает новое окно с использованием Javascript), окно не появляется. Окно в Firefox и Chrome прекрасно работает.

Включить блокировщик всплывающих окон выключен, Включить защищенный режим выключен, Принять все файлы cookie включены. Брандмауэр Windows выключен. Кто-нибудь может придумать что-нибудь еще, что может быть причиной этого? Или это известная ошибка? Я много искал как в SO, так и в Google, но пока не получил никаких полезных результатов.

Редактировать: Добавлен код для элемента, который я пытаюсь использовать

<a id="supervisor" class="topmenu" onclick="switchSupervisor();"    href="javascript:void(0);">
<span style="font-size: 13px;">
<strong>.</strong>
Supervisor
</span>
</a>

Спасибо за полезные ответы, по иронии судьбы, хотя ни одно из опубликованных решений не сработало, моя проблема была решена с помощью обновления Microsoft, которое решило, что было, по-видимому, ошибкой или странной функциональностью в IE, которая была исправлена ​​в последнем обновлении. Теперь я могу легко запустить его с помощью щелчка или события пожара.

Ответы [ 2 ]

3 голосов
/ 21 сентября 2011

IE с Selenium содержит досадную ошибку, из-за которой элементы не будут щелкаться должным образом, если у элемента ссылки есть вложенные элементы и нет текста.

Например:

<a id="clickme"><img src="something" /></a>

В IEследующее не работает:

driver.FindElement(By.Id("clickme")).Click();

Обходной путь - щелкнуть самый нижний элемент в дереве DOM под элементом ссылки:

driver.FindElement(By.Id("clickme")).FindElement(By.TagName("img")).Click();
//or
driver.FindElement(By.CssSelector("#clickme img")).Click();
2 голосов
/ 28 сентября 2011

Попробуйте использовать

Selenium.FireEvent(@"css=a#supervisor", "click")
...