Автор Тема: Клик по элементу со смещением.  (Прочитано 1238 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн iwak [?]

  • Новичок
  • *
  • Сообщений: 28
  • Репутация: 0
    • Награды
Здравствуйте. Прошу помощи в реализации следующей задачи.
Нужно выполнить клик по определенному элементу, но со смещением.

Если использовать код:

Код: AutoIt [Выделить]
$elements = _IETagNameGetCollection($oIE, "element")
For $element In $elements
If IsObj($element)
$element.click() ; or _IEAction($element, "click")
EndIf
Next
 


То как и положено, происходит клик в левый верхний угол элемента:



А нужно выполнить клик сюда:




Можно ли выполнить клик по элементу (со смещением)?

Что-то вроде этого:

Код: AutoIt [Выделить]
$element.click().offset('top: 32, left: 32').


?

Русское сообщество AutoIt

Клик по элементу со смещением.
« Отправлен: Ноябрь 21, 2014, 23:03:30 »

Оффлайн winstan [?]

  • Продвинутый
  • ***
  • Сообщений: 406
  • Репутация: 78
  • Пол: Мужской
  • Эксплотатор)
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Клик по элементу со смещением.
« Ответ #1, Отправлен: Ноябрь 22, 2014, 02:01:48 »
 :rofl: эвент клик не обладает параметрами для клика по координатам в элементе, клик по кружку поизойдёт в любом случии т.к. тут клик передаёться не от положения курсора, а от жёсткого вызова эвента клик
Помог мой мост? Жми "Полезное сообщение")

я полный "чайник" , но с другой стороный-не пустой.
Каму не трудно кликните по банару(это поднимит мой кирпичек на стене ников)

Онлайн inververs [?]

  • AutoIt Гуру
  • *****
  • Сообщений: 2004
  • Репутация: 439
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Клик по элементу со смещением.
« Ответ #2, Отправлен: Ноябрь 22, 2014, 18:09:48 »
Нужно вместо метода click() составлять событие MouseEvent
Там можно указать координаты клика. Которые можно получить зная положение элемента на странице через element.getBoundingClientRect()

Оффлайн Garrett [?]

  • Глобальный модератор
  • *
  • Сообщений: 3608
  • Репутация: 926
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Клик по элементу со смещением.
« Ответ #3, Отправлен: Ноябрь 23, 2014, 02:29:45 »
iwak  [?]
Цитировать
А нужно выполнить клик сюда
Попробуйте так.
Код: AutoIt [Выделить]
#include<IE.au3>

Opt("MouseCoordMode", 2)

$oIE = _IECreate("http://yandex.ru/v")
$aPos = ControlGetPos("[REGEXPTITLE: Windows Internet Explorer]", "", "[CLASS:Internet Explorer_Server; INSTANCE:1]")

$oImg = _IEImgGetCollection($oIE, 1)
MouseMove(_PosX($oImg)+($oImg.width/2), _PosY($oImg) + $aPos[1]+($oImg.height/2))
MouseClick("left")

Func _PosY($o_Obj)

   $iTop = 0

   If IsObj($o_Obj.offsetParent) Then
      While 1
         $iTop += $o_Obj.offsetTop
         If Not IsObj($o_Obj.offsetParent) Then
            ExitLoop
         EndIf
            $o_Obj = $o_Obj.offsetParent
      WEnd
   ElseIf IsObj($o_Obj.y) Then
        $iTop += $o_Obj.y
   EndIf

   Return $iTop

EndFunc ;==>_PosY

Func _PosX($o_Obj)

   $iLeft = 0

   If IsObj($o_Obj.offsetParent) Then
      While 1
         $iLeft += $o_Obj.offsetLeft
         If Not IsObj($o_Obj.offsetParent) Then
            ExitLoop
         EndIf
         $o_Obj = $o_Obj.offsetParent
      WEnd
   ElseIf IsObj($o_Obj.x) Then
      $iLeft += $o_Obj.x
   EndIf

   Return $iLeft
EndFunc ;==>_PosX


Скорблю и помню.




Русское сообщество AutoIt

Re: Клик по элементу со смещением.
« Ответ #3 Отправлен: Ноябрь 23, 2014, 02:29:45 »

Оффлайн winstan [?]

  • Продвинутый
  • ***
  • Сообщений: 406
  • Репутация: 78
  • Пол: Мужской
  • Эксплотатор)
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Клик по элементу со смещением.
« Ответ #4, Отправлен: Ноябрь 23, 2014, 06:51:17 »
Я бы посоветовал взглянуть на JS который работает с этим элементом и тупо его вызвать с нужными нам параметрами

Оффлайн lesoid [?]

  • Новичок
  • *
  • Сообщений: 4
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.12.0
Re: Клик по элементу со смещением.
« Ответ #5, Отправлен: Январь 20, 2015, 20:36:36 »
Я бы посоветовал взглянуть на JS который работает с этим элементом и тупо его вызвать с нужными нам параметрами
Очень интересует пример клика по js " Откликнитесь специалисты " можно в л.с.  :stars:>>>>>>>>> :beer:

Русское сообщество AutoIt

Re: Клик по элементу со смещением.
« Ответ #5 Отправлен: Январь 20, 2015, 20:36:36 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
4 Ответов
2351 Просмотров
Последний ответ Апрель 09, 2010, 16:54:03
от CreatoR
3 Ответов
2407 Просмотров
Последний ответ Август 28, 2012, 17:46:52
от AZJIO
14 Ответов
2682 Просмотров
Последний ответ Март 21, 2014, 15:00:50
от alex33
13 Ответов
3208 Просмотров
Последний ответ Февраль 01, 2016, 19:08:11
от alex33
6 Ответов
1771 Просмотров
Последний ответ Сентябрь 30, 2015, 18:07:32
от InnI
0 Ответов
953 Просмотров
Последний ответ Сентябрь 23, 2015, 15:05:01
от madmasles
6 Ответов
914 Просмотров
Последний ответ Октябрь 28, 2015, 18:35:09
от Yashied
0 Ответов
362 Просмотров
Последний ответ Март 08, 2016, 18:10:43
от DezmontDeXa
4 Ответов
988 Просмотров
Последний ответ Март 13, 2016, 08:39:32
от alex33
5 Ответов
671 Просмотров
Последний ответ Январь 11, 2017, 13:26:16
от InnI