2013-09-13 2 views
1

Я работаю над автоматическим тестированием Selenium/Robot Framework, и мне нужен способ автоматизировать поиск тегов div, которые можно щелкнуть.Определить, можно ли использовать HTML-div.

Ключевое слово Click Элемент делает трюк, если я даю ему очень специфический селектор CSS, но как я могу алгоритмически найти элемент, который можно щелкнуть? Пока есть способ получить узел DOM, я надеюсь вернуть уникальный селектор, который я могу использовать для вызова ключевого слова Click Element.

Я понимаю, что старые версии jQuery имеют $(element).data('events'), которые могут быть использованы для поиска прослушивателей кликов, но это похоже на ненадежный метод. Более того, веб-инспектор Chrome, похоже, не признает ни одного click слушателей для div s, на которые я смотрю.

Для полноты, вот пример HTML я работаю:

<div id="contentarea" class=""> 
    <div id="contentwrapper" style="opacity: 1;"> 
    <div class="rap"> 
     <div id="twocol" class="clearfix margintop"> 
     <div class="leftcol scrollable addprogram"> 
      <a href="..." class="newgroup"> 
      <span class="addicon"></span>New Group 
      </a> 
     </div> 
     <div class="rightcol clearfix"> 
      <ul class="subtabs rounded clearfix"> 
      <li data-tab="pending" class="selected"> 
       <a href="..." class="selected">Released</a> 
      </li> 
      </ul> 
      <div class="clear"></div> 
      <div id="program-grid" class="clearfix" style=""> 
      <div class="program groups" tabindex="0"> 
       <div class="programframe"></div> 
       <div class="programinfo"> 
       <h1 class="prizeheight">Development</h1> 
       </div> 
       </div><div class="program groups" tabindex="0"> 
       <div class="programframe"></div> 
       <div class="programinfo"> 
       <h1 class="prizeheight">Loss Prevention/Safety Group</h1> 
       </div> 
... 
... 

<div class='program groups'> является интерактивным элементом, что я надеюсь определить программно.

Для записи HTML действителен и так далее. Миниатюрный Javascript каким-то образом отображает этот источник и, вероятно, придает слушателям.

Спасибо!

+0

Если бы вы могли написать пример HTML, с которым работаете, это было бы полезно. – Richard

ответ

0

Возможно, это невозможно в соответствии с this website.

Какие регистраторы событий зарегистрированы?

Одна из проблем текущей реализации регистрации событий W3C заключается в том, что вы не можете узнать, зарегистрированы ли какие-либо обработчики событий , зарегистрированным для элемента. В традиционной модели вы можете:

alert (element.onclick), и вы видите функцию, зарегистрированную на , или не определена, если ничего не зарегистрировано. Только в самом последнем DOM Уровень 3 События W3C добавляет eventListenerList для хранения списка событий обработчиков, которые в настоящее время зарегистрированы на элементе. Эта функциональность пока не поддерживается ни одним браузером, она слишком новая. Однако проблема была решена.

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

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