Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.12.2011, 14:07
Новичок на форуме
Отправить личное сообщение для Dmitriy Komar Посмотреть профиль Найти все сообщения от Dmitriy Komar
 
Регистрация: 01.12.2011
Сообщений: 1

Как узнать какой скрипт вызывается при клике по эленету (если это прямо не прописано)
Добрый день. Занимаюсь автоматизацией тестирования веб-приложения на Selenium WebDriver и столкнулся с такой проблемой: селениум ни в какую не хочет кликать по определенному DIV элементу. Если кликнуть вручную, то все работает отлично и нужное окно открывается.

Вот описание самого элемент:
Код:
<div id="ke5sBLbfvYwogwt-uid-2" class="dhtmlxMenu_dhx_blue_TopLevel_Item_Normal" title="Click to create a Custom Field">
    <div class="top_level_text">Create Field</div>
</div>
У элемента нет описания события onclick, соответственно событие обрабатывается где-то в другом месте. Как можно узнать где оно обрабатывается и какие методы при этом вызываются? Просто посмотреть методы со страницы в firebug не помогает, так как их слишком много и непонятно какой из них вызывается. Может есть сниферы какие-то или что-то типа такого? Потому что просто эмуляция клика не срабатывает и нужно будет вызывать напрямую

Ответить с цитированием
  #2 (permalink)  
Старый 01.12.2011, 14:25
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

попробуйте расширения firebug для работы с событиями, типа http://getfirebug.com/wiki/index.php...sions#Eventbug
Ответить с цитированием
  #3 (permalink)  
Старый 08.12.2011, 03:30
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от Dmitriy Komar Посмотреть сообщение
У элемента нет описания события onclick...
Если элемент срабатывает по клику мышью, то это значит, что возможны три варианта:
1. обработчик onclick навешивается где-то дальше по ходу программы. и возможно после загрузки посмотреть его хотя бы так: alert(thisobject.onclick);
2. возможно на элемент навешен не обработчик onclick, а два обработчика onmousedown и onmouseup - надо искть их.
3. бывают случаи (редко), когда обработчик навешен на document и обрабатывает все события от мыши, при этом он проверяет координаты мыши и, если клик произошел над данным DIV_ом, то производит определенные действия, если над другим - производит другие. В этом случае надо проверить все ссылки на id "ke5sBLbfvYwogwt-uid-2"
Ответить с цитированием
  #4 (permalink)  
Старый 08.12.2011, 06:18
Профессор
Отправить личное сообщение для with-love-from-siberia Посмотреть профиль Найти все сообщения от with-love-from-siberia
 
Регистрация: 14.12.2009
Сообщений: 155

Сообщение от Маэстро
бывают случаи (редко), когда обработчик навешен на document ..., при этом он проверяет координаты мыши
Необязательно проверять координаты - достаточно проверить свойство события target или srcElement и сопоставить с требуемым элементом. Если элементов неопределенно много, то установка единственного обработчика на document более оптимальная по коду и экономичная по скорости выполнения операция нежели инициализация индивидуального для каждого элемента, удовлетворяющего определенным условиям.
Ответить с цитированием
  #5 (permalink)  
Старый 08.12.2011, 17:21
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от with-love-from-siberia Посмотреть сообщение
Необязательно проверять координаты - достаточно проверить свойство события target или srcElement и сопоставить с требуемым элементом.
этого недостаточно в ряде случаев, когда элементы с абсолютным позиционированием и накладываются один на другой. пример: на DIV_е лежит картинка. Клик должен обработать данный DIV. но при клике на картинку какой будет target/srcElement?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по jquery - как узнать какой тэг? APL Общие вопросы Javascript 7 09.06.2016 15:22
Баги Opera пишем сюда devote Оффтопик 101 08.08.2013 05:56
способы организации кода melky Общие вопросы Javascript 17 01.10.2011 22:57