Что нового

Как нажать на определенную кнопку в браузере, меняющую свое положение?

Fertion

Новичок
Сообщения
5
Репутация
0
Прошу подсказать, какой код нужен, дабы нажать кнопку "Показать больше матчей" по, к примеру, такой ссылке www . myscore . ru /match /8StvLhIi /?d=1#h2h;overall . Открывать при этом нужно именно в браузере файрфокс. По координатам мышкой не нажать, кнопка может смещаться, при помощи отправки 9-ти нажатий tab и enter получается долго и часто скрипт жмет не туда, куда нужно, т.к. на странице могут отсутствовать определенные элементы. Как можно напрямую нажать эту кнопку?
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Код:
#include "UIAutomate.au3" ; http://autoit-script.ru/index.php/topic,16780.0.html

Opt("WinTitleMatchMode", 2)

$hWnd = _UIA_GetElementFromHandle(WinGetHandle("- Mozilla Firefox"))
While 1
  $oLink = _UIA_GetControlTypeElement($hWnd, "UIA_HyperlinkControlTypeId", "Показать больше матчей")
  If @error Then ExitLoop
  _UIA_ElementDoDefaultAction($oLink)
WEnd
 
Автор
F

Fertion

Новичок
Сообщения
5
Репутация
0
При попытке запуска выдает вот что:
>"E:\Programs\AutoIt3\SciTE\..\AutoIt3.exe" "E:\Programs\AutoIt3\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.au3" /run /prod /ErrorStdOut /in "C:\Users\ferti\Desktop\тест\Ntcn.au3" /UserParams
+>11:46:49 Starting AutoIt3Wrapper v.15.729.1555.1 SciTE v.3.5.4.0 Keyboard:00000419 OS:WIN_10/ CPU:X64 OS:X86 Environment(Language:0419)
+> SciTEDir => E:\Programs\AutoIt3\SciTE UserDir => C:\Users\ferti\AppData\Local\AutoIt v3\SciTE\AutoIt3Wrapper SCITE_USERHOME => C:\Users\ferti\AppData\Local\AutoIt v3\SciTE
>Running AU3Check (3.3.14.1) from:E:\Programs\AutoIt3 input:C:\Users\ferti\Desktop\тест\Ntcn.au3
+>11:46:50 AU3Check ended.rc:0
>Running:(3.3.14.1):E:\Programs\AutoIt3\autoit3.exe "C:\Users\ferti\Desktop\тест\Ntcn.au3"
--> Press Ctrl+Alt+Break to Restart or Ctrl+Break to Stop
!> _UIA_FindAllElementsEx : ошибка создания объекта массива
!> _UIA_FindAllElements : ошибка создания массива элементов (объектов)
!> _UIA_GetControlTypeElement : ошибка создания массива элементов (объектов)
+>11:46:57 AutoIt3.exe ended.rc:0
+>11:46:57 AutoIt3Wrapper Finished.
>Exit code: 0 Time: 10.43

Не подскажете, пожалуйста, как это исправить?
 
Автор
F

Fertion

Новичок
Сообщения
5
Репутация
0
InnI сказал(а):
Fertion
как это исправить
Предполагаю, что в Firefox открыто много вкладок: Ответ #15
Я у себя проверял на Firefox Portable с одной вкладкой (Win7 x86).

Большое спасибо, да, дело было именно в этом. Но ещё один вопрос появился, скрипт запустился, но он нажимает на эту кнопку до тех пор, пока она не исчезнет, мне же нужно лишь однократное нажатие. Ну вроде все логично, там же цикл, но когда я убрал цикл, скрипт продолжает открывать все ссылки "Показать больше матчей". Как так и как исправить?

Код:
#include "UIAutomate.au3" ; http://autoit-script.ru/index.php/topic,16780.0.html
Opt("WinTitleMatchMode", 2)
$hWnd = _UIA_GetElementFromHandle(WinGetHandle("- Mozilla Firefox"))
$oLink = _UIA_GetControlTypeElement($hWnd, "UIA_HyperlinkControlTypeId", "Показать больше матчей")
_UIA_ElementDoDefaultAction($oLink)
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Fertion
мне же нужно лишь однократное нажатие
И смысл писать скрипт? Один раз можно и вручную кликнуть.

скрипт продолжает открывать все ссылки
Ваш модернизированный скрипт не может открывать все ссылки. Он "кликает" по первой попавшейся и завершает работу.
 
Автор
F

Fertion

Новичок
Сообщения
5
Репутация
0
InnI сказал(а):
Fertion
мне же нужно лишь однократное нажатие
И смысл писать скрипт? Один раз можно и вручную кликнуть.

скрипт продолжает открывать все ссылки
Ваш модернизированный скрипт не может открывать все ссылки. Он "кликает" по первой попавшейся и завершает работу.

Смысл в том, что это самое однократное нажатие мне нужно будет не раз повторить на других страницах. А по поводу открытия ссылок, я сам плохо понимаю, как так происходит, но вот даже гифка процесса https:// imgur. com/bPOv5w5
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Предупреждение За нарушение общих правил (пункт В.2):
Старайтесь избегать “Over quoting” (преувеличенное цитирование) - цитируйте только необходимую часть сообщения, которая наилучшим образом подчеркнёт суть цитируемого.


С уважением, ваш Модератор.
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Fertion
как так происходит
Затрудняюсь ответить. Попробуйте запустить скрипт нажатием на файле правой кнопкой мыши и выбором во всплывающем меню "Run". Если пройдёт нормально, значит проблемы со SciTE. Или пересохраните файл под другим именем.
 
Верх