2010-06-23 2 views
4

У меня есть связь с идентификатором:Selenium: Почему click() не ведет себя так, как в Firefox?

<a href="#" onclick="return false();" id="lol"> 

В моем тесте:

selenium.click("lol"); //when running the test, the click will just end up selecting the item, not firing off the frameworks javascript 

Это не зарегистрировать нажмите то же самое! Существует javascript, который является частью сложной структуры, которая вызовет всплывающее окно div. Это работает в firefox.

Но это работает как исправить:

selenium.click("lol"); //when running the test, the click will just end up selecting the item, not firing off the frameworks javascript 
selenium.keyPress("lol", "\\13"); //press enter key, since the click ended up selecting it 

Исправление работает. Но что здесь происходит? Кажется, что selenium.click()! = [Фактическое событие щелчка браузера]. Может ли кто-нибудь помочь пролить свет на эти внутренние работы?

+2

Это похоже на http://stackoverflow.com/questions/633600/selenium-click-event-seems-not-to-be-always-triggered-results-in-timeout - кажется, что это неизвестно, почему это происходит, но вы можете использовать fireEvent() для правильной имитации событий. –

+0

Почему это помечено как Java? – Jonas

ответ

0

В javascript можно щелкнуть ссылку в браузере. См. this other question. Одним из решений было бы ожидать появления некоторого элемента на странице, которая помещается туда javascript.

+0

Я действительно дожидаюсь, пока он будет виден на странице. – Zombies

1

Selenium иногда не моделирует щелчок на javascript hrefs точно. Может быть, это та же проблема. Быстрое решение - использовать комбинацию событий селена и мыши. Вы также можете рассмотреть возможность использования selenium.fireEvent("lol","click");. Вернитесь назад, когда вы попробуете это.

+0

Я попробовал это. Это не сработало: (Ох ... но, возможно, мышь и мышь будут работать. – Zombies

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