Что нового

Нажать на чекбокс я не робот

StanislavSH7

Новичок
Сообщения
4
Репутация
0
Помогите разобраться где не правильно делаю.
Сразу говорю только учусь.
Делаю мелкого бота. Запускаю IE, перехожу по ссылке. проблем нет
потом нужно нажать на гугловский чекбокс "я не робот"
1570109238176.png
код элемента:
HTML:
<div class="rc-anchor-center-item rc-anchor-checkbox-holder">
<span class="recaptcha-checkbox goog-inline-block recaptcha-checkbox-unchecked rc-anchor-checkbox recaptcha-checkbox-checked"
role="checkbox" aria-checked="true" id="recaptcha-anchor" dir="ltr" aria-labelledby="recaptcha-anchor-label" aria-disabled="false" tabindex="0" style="overflow: visible;">
<div class="recaptcha-checkbox-border" role="presentation" style="display: none;"></div>
<div class="recaptcha-checkbox-borderAnimation" role="presentation" style=""></div>
<div class="recaptcha-checkbox-spinner" role="presentation" style="transform: rotate(180deg);"></div>
<div class="recaptcha-checkbox-spinnerAnimation" role="presentation" style=""></div>
<div class="recaptcha-checkbox-checkmark" role="presentation" style=""></div></span></div>

ну и написал 2 строчки:
Код:
$oSubmit = _IEGetObjByName($oIE, "recaptcha-checkbox-border")
_IEAction($oSubmit, "click")

при запуске скрипта галка на чек бокс не ставится и выводятся ошибки
--> IE.au3 T3.0-2 Warning from function _IEGetObjByName, $_IESTATUS_NoMatch (Name: recaptcha-checkbox-border, Index: 0) --> IE.au3 T3.0-2 Error from function _IEAction(click), $_IESTATUS_InvalidDataType
 
Последнее редактирование модератором:
Автор
S

StanislavSH7

Новичок
Сообщения
4
Репутация
0
исключительно из примера на функцию
_IEAction
или это была плохая идея ?
 

gunter123

Продвинутый
Сообщения
159
Репутация
69
Для поиска элементов с класом можно использовать .getElementsByClassName

Код:
$oCheckbox = $oIE.document.getElementsByClassName('recaptcha-checkbox-border').item(0)
If IsObj($oCheckbox) Then
       $oCheckbox.focus()
       $oCheckbox.click()
Else
      MsgBox(4096, '', 'Чекбокс не найден')
EndIf
 

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,444
или это была плохая идея ?
Нет, почему же... Изучать программирование методом тыка, конечно, можно. Только это займёт очень много времени и нервов.

Попробуйте такой "тык"
Код:
$oSubmit = _IEGetObjById($oIE, "recaptcha-anchor")
 
Автор
S

StanislavSH7

Новичок
Сообщения
4
Репутация
0
InnI это был первый вариант, так же пишет
так же ругается на $_IESTATUS_NoMatch (recaptcha-anchor)
А не может ли быть, то что я не верный код к элементу выдрал со страницы? я в опере
1570118912965.png
и открывается тот кусок кода который я в первом сообщении привел
1570119179657.png
Сообщение автоматически объединено:

Для поиска элементов с класом можно использовать .getElementsByClassName

Код:
$oCheckbox = $oIE.document.getElementsByClassName('recaptcha-checkbox-border').item(0)
If IsObj($oCheckbox) Then
       $oCheckbox.focus()
       $oCheckbox.click()
Else
      MsgBox(4096, '', 'Чекбокс не найден')
EndIf

Не находит.
 

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,444
А не может ли быть, то что я не верный код к элементу выдрал со страницы?
Конечно может быть. Если вы не понимаете разницы между "name" и "id", то, естественно, вы не сможете определить - правильный фрагмент кода или нет.
Ну, допустим, установите вы "галочку". А дальше что? Правильный ответ всё равно не соберёте.
 
Автор
S

StanislavSH7

Новичок
Сообщения
4
Репутация
0
Конечно может быть. Если вы не понимаете разницы между "name" и "id", то, естественно, вы не сможете определить - правильный фрагмент кода или нет.
Ну, допустим, установите вы "галочку". А дальше что? Правильный ответ всё равно не соберёте.
Уважаемый(ая), смотря на вашу манеру общения сразу вспоминаю древний как дерьмо мамонта анекдот, лениво его писать полностью, но последние слова я приведу: я то пьяный, а у тебя ноги кривые.


P.S. А задачу я решил, несколько не так красиво, как хотелось бы, но результат есть.
 

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,444
смотря на вашу манеру общения
Моя манера общения подстраивается под манеры вопросов. Когда спрашивают "почему не работает функция, в назначении которой мне лень разбираться?" получают соответствующие ответы.
лениво его писать полностью, но последние слова я приведу: я то пьяный, а у тебя ноги кривые
Все ваши проблемы из-за лени. Даже анекдот неправильно процитировали.
А задачу я решил
Поздравляю! Сделайте доброе дело - поделитесь кодом с другими. Возможно, кому-то поможете.
 
Верх