Что нового

Скрипт находит кнопку, но нажать не получается

yakov

Новичок
Сообщения
5
Репутация
0
Доброго времени суток. Перепробовал всё на что способна моя фантазия, и всё что перечитал на форуме. С Autoit знаком всего неделю. Задача нажать на кнопки "ВЫШЕ", "НИЖЕ". Боюсь что это задача не реализуема, но прежде чем отказаться от затеи решил обратиться к специалистам. Скрипт находит кнопки, но нажать ниже перечисленными методами не получается. Помогите пожалуйста достичь цель без использования "mouseclick", если это возможно. Вся информация в коде, после компиляции и запуска всё становится понятно. Заранее огромное спасибо!!!


Код:
#include <Array.au3>
#include <IE.au3>

$oIE = _IECreate("https://alpari.com/ru/binary_options/", 1)
Opt("WinTitleMatchMode", 1)
WinActivate("Бинарные опционы")                    ;проверяем наличие окна, и запускаем.
WinSetState ('Бинарные опционы', '', @SW_MAXIMIZE) ;Разворачиваем окно на весь экран

Local $i
Local $aArray[0]
Local $aArray2[0]
$lCol = _IETagNameGetCollection($oIE, 'button') ; div  span
For $oIn In $lCol
    $i = UBound($aArray)
    ReDim $aArray [$i + 1]
	ReDim $aArray2[$i + 1]
    $aArray[$i] = $oIn.classname
	$aArray2[$i] = _IEPropertyGet($oIn, "innertext")
    ;if _IEPropertyGet($oIn, "innertext") == 'Выше' Then                                                ; То что нужно нажать. Условие верно, клик не срабатывает.
    If $aArray[$i] == "bali-button bali-button_type_green bali-button_call_put bali-button_call"  Then  ; То что нужно нажать. Условие верно, клик не срабатывает.
	   _IEAction($oIn, 'focus')         ; фокус наводит, но без толку.
	   _IEAction($oIn, 'click')         ; не работает
	    $oIn.click                      ; не работает
	   _IELinkClickByText($oIE, "ВЫШЕ") ; не работает
	    ControlClick('[CLASS:Internet Explorer_Server; INSTANCE:7]', '', '[CLASS:Button; INSTANCE:1]') ; не работаеm, вообще не понятно что с этим делать.
	   MsgBox(0, 'TEST То что нужно нажать', _IEPropertyGet($oIn, "innertext")) ; То что нужно нажать
	   MsgBox(0, 'ТЕСТ То что нужно нажать',  $oIn.classname )                  ; То что нужно нажать
    EndIf
 Next
_ArrayDisplay($aArray , 'ТЕСТ Перечень кнопок')
_ArrayDisplay($aArray2, 'ТЕСТ Перечень кнопок')
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
yakov
Не нужно создавать темы в разных разделах по одному и тому же вопросу!
 
Автор
Y

yakov

Новичок
Сообщения
5
Репутация
0
Извиняюсь, я случайно создал тему не в том разделе,


Добавлено:
Сообщение автоматически объединено:

Не могу понять почему фокус наводит, а с помощью этой же функции клик не происходит.
Код:
_IEAction($oIn, 'focus')         ; фокус наводит, но без толку.
       _IEAction($oIn, 'click')         ; не работает
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Код:
If $aArray[$i] == "bali-button bali-button_type_green bali-button_call_put bali-button_call"  Then  ; То что нужно нажать. Условие верно, клик не срабатывает.
       ControlClick("Бинарные опционы", "", "", "left", 1, _IEPropertyGet($oIn, "browserx") + 10, _IEPropertyGet($oIn, "browsery") + 10)
 
Автор
Y

yakov

Новичок
Сообщения
5
Репутация
0
К сожалению не работает.
 
Автор
Y

yakov

Новичок
Сообщения
5
Репутация
0
У меня IE11 в Win7 x64 Autoit 3.3.14.2 ни как не хочет :stars:


Добавлено:
Сообщение автоматически объединено:

InnI сказал(а):
yakov
Печально. А я у себя проверял на IE11 в Win7 x86 и в Win10 x64 - нормально кликает.

Сделал вот так для визуализации:
Код:
MouseClick("left",  _IEPropertyGet($oIn, "browserx"),  _IEPropertyGet($oIn, "browsery"), 1)

У меня мышка уходит в низ за пределы экрана.
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
yakov
Кнопка должна быть в зоне видимости сразу после загрузки страницы. В противном случае необходимо осуществить прокрутку кнопки в зону видимости, узнать новые координаты относительно элемента "Internet Explorer_Server" и передать эти координаты в ControlClick.
 

Pennon

Новичок
Сообщения
45
Репутация
0
InnI [?]
Кнопка должна быть в зоне видимости сразу после загрузки страницы
Эти же кнопки хочу нажать но нужно чтобы в свёрнутом окне нажималось.
Должен же быть такой способ.
 
Верх