2014-09-16 2 views
0

Ниже приведен HTML-код. При зависании с использованием watir мне нужно показать приведенный ниже список, который происходит хорошо вручную.Невозможно навестить использование fire_event и .hover

<li class=" dropdown"> 
    <a class="dropdown-toggle" data-toggle="dropdown" ceid="MM - Tour" href="/product-tour"> 
     Tour 
     <b class="caret"/> 
    </a> 
    <ul class="dropdown-menu dropdown-tour depth-1 row"> 
     <li class=" col-md-3"> 
     <li class=" col-md-3"> 
     <li class=" col-md-3"> 
     <li class=" col-md-3"> 
    </ul> 
</li> 
  1. на использовании fire_event "OnMouseOver", в IRB его возвращения верно. Но зависание не выполняется, и список не отображается. Ниже представлен вывод irb.

    irb (main): 035: 0> b.link (: text => 'Tour').
    => верно
    IRB (основной): 036: 0> b.link. (Текст => 'Tour') fire_event "OnMouseOver"
    => верно

  2. С помощью .hover, облицовочный ошибка ниже.

    Selenium :: WebDriver :: Error :: InvalidElementStateError: Не удается выполнить встроенную интеграцию: не удалось загрузить компонент native events. из [удаленного сервера] file: /// C:/Users/SRIRAM ~ 1/AppData/Local/Temp/webdri ver-profile20140917-6780-x3gs6b/extensions/[email protected]/components/dr iver_component.js: 9770: 3: in `generateErrorForNativeEvents '

Ниже приведены версии моих драгоценных камней.

watir-webdriver (0.6.10) 
selenium-webdriver (2.42.0) 

Firefox Browser version : 30.0 

Есть ли какой-либо другой способ для этого наведения курсора мыши с помощью веб-браузера watir?

С уважением,
Авинаш Duggirala

+0

Может быть, попробуйте обновить ваш Firefox и селен WebDriver к последнему? Из документа [CHANGES doc] (https://code.google.com/p/selenium/source/browse/rb/CHANGES), возможно, не была поддержка для родных событий в Firefox 30. Selenium 2.42.0 был обновлен для поддержки Firefox 29 и Selenium 2.43.0 поддерживали родные события для Firefox 24, 31 и 32. –

+0

@JustinKo Это не разрешилось проблемой. Я обновил селен webdriver до (2.43.0), а мой FF до 32 не работал. Даже я попытался понизить firefox до версии 24, даже эта комбинация не сработала. Любая другая альтернатива? –

+0

@JustinKo Я пробовал с Selenium element = driver.find_element (: css => '#main_menu ul.nav.navbar-nav.navbar-right> li: nth-child (2)> a') driver.action.move_to (element) .perform Даже это просто мигает оверлей на секунду. В ожидании вашего ответа от Ватира! –

ответ

2

Похоже, при использовании hover, раскрывающийся становится видимым для второй, а затем исчезает. Кажется, что страница думает, что мышь перемещена в ссылку «Тур», а затем отошла. Учитывая, что hover работает в Chrome, я бы сказал, что это проблема с драйвером Firefox.

Вы можете обойти эту проблему с помощью Javascript, чтобы заставить ниспадающее меню, которое будет отображаться - то есть изменения стиля отображения от «нет» на «блок»:

dropdown = b.link(:text => 'Tour').parent.ul 
b.execute_script('arguments[0].style.display="block";', dropdown) 
+0

Ответ действительно потрясающий. Он отлично работает. Большое спасибо Justin –

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