Как получить доступ к неопознанным вложенным элементам меню, используя watir и firefox? - PullRequest
1 голос
/ 10 января 2012

Мой список вложен в два заголовка, и я не знаю, как получить к ним доступ через watir, поскольку стиль отображает «none», пока не произойдет событие «hover».И класс не определен до тех пор, пока не наведется указатель мыши.

b.link(:text, /Assessments/).fire_event('onmouseover')

откроет начальный раскрывающийся список.Я понятия не имею, как получить доступ к элементам в «подуровне»

Вариации на следующие отклонены watir:

b.link(:class, "sub-level").click
b.link(:class, "sub-level").fire_event('onmouseover')
b.link(:class, "sub-level").fire_event('hover')

Watir::Exception::UnknownObjectException: unable to locate element, using {:class=>"sub-level", :tag_name=>"a"}

Я быстро выполнял это через IRBтестирование каждой новой строки, которую я добавляю в свой скрипт.Если это неправильно, я буду признателен за любые советы.

<li class="top-level">
<a class="" href="#">
Assessments&nbsp;&nbsp;
<img id="lfArrowImg" style="border:0px;" src="https://test.com/top/images/global_nav_downArrow.gif">
</a>
  <ul style="z-index: 1045; display: none;">
  <li class="sub-level">
     <a class="">
     Assessments
     <div id="menugroup" class="dr-menu-node dr-menu-node-icon rich-menu-item-folder rich-menu-group-folder"></div>
     </a>
  <ul style="z-index: 1068; display: none;">    
  <li class="sub-level">
     <a class="" href="http://test.com/content/aa/assessment/index.xhtml">Main</a>
  </li>
  <li class="sub-level">
  <li class="sub-level">
</ul>
</li>

Спасибо, Дэмиен

1 Ответ

2 голосов
/ 10 января 2012

Ошибка правильная, поскольку у вас нет тега ссылки в этом коде с классом подуровня. Вещи с этим классом - это элементы li (List Item), которые содержат элементы ссылки (aka 'anchor', следовательно, тег a)

Попробуйте что-то вроде этого (в зависимости от того, какую ссылку вы хотите нажать)

browser.li(:class => 'sub-level', :text => 'Assessments').link.click
browser.li(:class => 'sub-level', :text => 'Main').link.click

Подробнее о способах идентификации элементов, особенно если у них нет удобного идентификатора, класса и т. Д., См. Ответы на этот вопрос SO: Как получить индекс родительского элемента с помощью Watir Webdriver? и ответы (все три) на этот вопрос также: Доступ к элементу без атрибутов в Watir

...