Клик по элементу на странице в рамках координат
Всем привет, такая проблема: как можно сделать нажатие по элементу, который находится в заданном интервале координат?
Объясню подробнее: на сайте есть много кликабельных элементов одинакового типа с одинаковыми значениями, но мне нужно сделать клик только по одному элементу в центре экрана. Как такое можно реализовать? Использовал такое: $(document.elementFromPoint(х, у)).click(); Но при даже небольшом изменении положения окна, все сбивается. Нужно задать диапазон хотя бы +/- 50px и вот тут ступор. Подскажите пожалуйста ) |
И еще вопрос в догонку: заметил, что через раз на странице грузится элемент над моим элементом, который немного опускает нужный мне элемент. Как сделать проверку на наличие этого элемента (загрузился он или нет) и тогда уже делать клик по координате?
|
То есть он не совсем по центру? А по css-селектору его никак не поймать?
|
Если еще один элемент не прогружается - по центру, если прогружается - не совсем, сдвигается пикселей на 40-50 вниз.
По css увы никак( |
Цитата:
|
Цитата:
Где можно почерпнуть информацию, не подскажете? |
Цитата:
Может у него индекс уникальный (то есть - всегда пятый по счету). Почему тебе именно по нему, а не по предыдущему надо кликнуть? |
Потому что он единственный работает, остальные - защита от автоклика по type и value, я так понимаю и никаких действий они не совершают. Помимо этого этот элемент всегда в одной и той же координате находится, окромя случая, когда через раз грузится еще один элемент над ним.
|
Вобщем элемент который грузится через раз это изображение и имеет title - Картинка
Попробовал сделать проверку наличия этой самой картинки вот так: function click() { var image = $('<img src="/tmp/pic/3.gif"/>'); if (image.attr('width') > 0) $(document.elementFromPoint(x, y)).click(); else $(document.elementFromPoint(x, y1)).click(); } При таком раскладе кликается только тогда, когда картинка есть, если ее нет - кликается в ту же область в которую идет клик при наличии картинки, т.е. то, что в else не кликается вообще( ЧЯДНТ? |
И кстати, где можно почитать о том, как подцепить по css ? Мне так, для саморазвития :)
|
Цитата:
Можно еще xpath использовать для этой цели. Хотя по-моему бессмысленно. |
Понял, за селекторы спасибо. Думаю тут все-равно их не удастся применить.
Подскажите по моему скрипту выше пожалуйста, мне кажется, такой метод наиболее подходит ) |
Как можно переделать скрипт так, что бы он делал следующее:
Если картинка есть - нажал в одну точку, если картинки нет - в другую. И можно ли сделать подобное без перегрузки iframe? function click() { var image = $('<img src="/tmp/pic/3.gif"/>'); if (image.attr('width') > 0) $(document.elementFromPoint(x, y)).click(); else $(document.elementFromPoint(x, y1)).click(); } |
Либо же другой вариант - заметил, что порой кнопки отличаются на 1-2 px по высоте и ширине, т.е. нужная мне кнопка самая большая. Может можно как-то за это ухватиться?
|
Обходи все кнопки, потом кликай на самую большую.
|
установи нужной кнопке какой нибудь атрибут.
Да и вообще почему бы просто не установить нужной кнопке id? |
Цитата:
|
Получаешь кнопки:
var buttons = document.querySelectorAll('button'); // или твой селектор Ну и через цикл for(..) перебираешь, проверяя высоту или ширину. запоминай в переменную самую высокую кнопку (сравнивая текущую перебираемую с той, что в переменной (или если это первая - то записываешь ее в переменную). После цикла кликай по ней. Высота - button.offsetHeight, ширина - offsetWidth |
Часовой пояс GMT +3, время: 15:40. |