Автор Тема: Как кликнуть по кнопке из фрейма с защитой  (Прочитано 113 раз)

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

Оффлайн Aragon [?]

  • Новичок
  • *
  • Сообщений: 2
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Здравствуйте!
На сайте браузерной игры пытаюсь нажать кнопку входа, расположенную внутри фрейма. Вот ее код:
<button class="glagna-mainBtn -blue js-glagna-fastLink" data-id="ru33.waysofhistory.com"></button>После изучения форума и справки нашел такое решение:
Код: AutoIt [Выделить]
#include <IE.au3>
$oIE = _IECreate ("https://ru.waysofhistory.com")
$oFrame = _IEGetObjById ($oIE, "frame")
_IENavigate($oIE, $oFrame.src)
Sleep(2000)
$leftNav = $oIE.document.querySelector('[class*="glagna-mainBtn -blue js-glagna-fastLink"]')
_IEAction($leftNav,"click")

Скрипт работает, кнопка нажимается. Но входа в игру не происходит, сайт делает редирект на пустую страницу с каким-то зеленым экраном. Думаю, это защита сайта не дает войти изнутри фрейма после
Код: AutoIt [Выделить]
_IENavigate($oIE, $oFrame.src)

А без этого не получается найти кнопку. Такой код:
Код: AutoIt [Выделить]
$oIE = _IECreate ("https://ru.waysofhistory.com")
$oFrame = _IEGetObjById ($oIE, "frame")
$leftNav = $oFrame.document.querySelector('[class*="glagna-mainBtn -blue js-glagna-fastLink"]')
_IEAction($leftNav,"click")

Не работает. Он просто ее не видит.
Код: AutoIt [Выделить]
$sHTML = _IEBodyReadHTML ($oIE)
$sHTML = _IEBodyReadHTML ($oFrame)

Возвращают только id фрейма и src, а код страницы не видно.
Подскажите пожалуйста, есть ли способ поймать кнопку без перехода по $oFrame.src или как-то по-другому обойти защиту.

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

Как кликнуть по кнопке из фрейма с защитой
« Отправлен: Ноябрь 11, 2017, 15:48:13 »

Оффлайн Aragon [?]

  • Новичок
  • *
  • Сообщений: 2

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Пока придумал такой вариант:
Код: AutoIt [Выделить]
#include <IE.au3>
$oIE = _IECreate ("https://ru.waysofhistory.com")
$oFrame = _IEGetObjById ($oIE, "frame")
_IENavigate($oIE, $oFrame.src)
_IELoadWait($oIE, 200)
$leftNav = $oIE.document.querySelector('[class*="glagna-mainBtn -blue js-glagna-fastLink"]')
$iScreenX = _IEPropertyGet($leftNav, "screenx")
$iScreenY = _IEPropertyGet($leftNav, "screeny")
MouseMove($iScreenX, $iScreenY)
_IEAction($oIE, "back")
Sleep(2000)
MouseClick ("left")

С главной страницы вход в игру происходит. Но есть 2 существенных минуса. Во-первых, приходится двигать курсор, чего хотелось бы избежать. А во-вторых, в самой игре данные тоже спрятаны в такой фрейм. И этот способ уже не работает, потому что после
Код: AutoIt [Выделить]
_IENavigate($oIE, $oFrame.src)

тупо выкидывает из игры на главную. Надеюсь кто-нибудь подскажет более правильное решение

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

Re: Как кликнуть по кнопке из фрейма с защитой
« Ответ #1 Отправлен: Ноябрь 11, 2017, 22:21:48 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
17 Ответов
8961 Просмотров
Последний ответ Сентябрь 21, 2010, 17:00:10
от MURDOC
7 Ответов
6180 Просмотров
Последний ответ Апрель 19, 2010, 14:20:54
от Snake-345
1 Ответов
3750 Просмотров
Последний ответ Сентябрь 17, 2010, 11:02:09
от axlwor
8 Ответов
4446 Просмотров
Последний ответ Сентябрь 08, 2011, 18:44:28
от jilexandr
3 Ответов
2725 Просмотров
Последний ответ Февраль 15, 2012, 19:45:27
от Viktor1703
27 Ответов
6862 Просмотров
Последний ответ Март 29, 2012, 21:39:05
от ViktorSPB
5 Ответов
2697 Просмотров
Последний ответ Ноябрь 11, 2012, 17:49:21
от IoffeMax
1 Ответов
1169 Просмотров
Последний ответ Ноябрь 08, 2013, 15:29:51
от InnI
1 Ответов
1008 Просмотров
Последний ответ Сентябрь 29, 2014, 20:58:40
от iwak
5 Ответов
1243 Просмотров
Последний ответ Февраль 14, 2017, 20:58:43
от uritalex