Что нового

[Сеть, интернет] (Как кликнуть по ссылке)||(Не работает _IELinkClickByText)

berecan

Новичок
Сообщения
4
Репутация
0
Хочу автоматизировать авторизацию и проверку своего аккаунта в sarafanka.com

Есть вот такая ссылка
Код:
<a href="https://api.vk.com/oauth/authorize?client_id=2334488&amp;scope=493726&amp;redirect_uri=http://sarafanka.com/login.php&amp;response_type=code&amp;display=popup">Войти через Вконтакте!</a>
Вот такой тривиальный код не цепляет ссылку
Код:
$new_wind = _IECreate("http://sarafanka.com/login.php")
_IELinkClickByText ($new_wind, "Войти через Вконтакте!")

Был прокурен интернет и написано следущее
Код:
$new_wind = _IECreate("http://sarafanka.com/login.php")
$oLinks = _IELinkGetCollection ($new_wind)
For $oLink In $oLinks
	ConsoleWrite($oLink.innertext & '--__--')
 if(StringInStr($oLink.innertext,"Войти через Вконтакте!")) Then
	 	ConsoleWrite("Нажали ")
  _IENavigate($new_wind,$oLink.href)
 EndIf

Разбор показал следующее
[box title=консолька]0--__--0--__--Sarafanka.com--__--вирусного маркетинга--__--Войти--__--Зарегистрироваться--__--Напомнить пароль--__--Главная--__--Обратная связь--__--Личный кабинет--__--Доступные задания--__--Новая кампания--__--0--__--0--__--0--__--0--__--0--__--0--__--0--__--1--__--2--__--3--__--4--__--Рассказать друзьям--__--Лайк--__--Статус--__--Подписка на Публичную страницу--__--Вступление в Группу--__--Участие во Встрече--__--Активных заданий:--__--заработка:--__--Зарегистрируйтесь--__--Укажите--__--Выберите--__--Зарегистрируйтесь--__--Создайте--__--пользовательское соглашение--__--о нас--__--sarafanka.com--__--0--__----> IE.au3 V2.4-0 Warning from function _IELinkClickByText, $_IEStatus_NoMatch
[/box]

Вопрос: Почему не находится ссылка?
Вопрос1: Откуда берутся дополнительные ссылки, если в исходном коде страницы их нет?

//не первый раз встречаю эту проблему, а толкового ответа так и не нашел.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
А если сразу выполнять навигацию по этому URL?
https://api.vk.com/oauth/authorize?client_id=2334488&scope=493726&redirect_uri=http://sarafanka.com/login.php&response_type=code&display=popup
 
Автор
B

berecan

Новичок
Сообщения
4
Репутация
0
ошибка загрузки происходит
The webpage cannot be found (Http 400 bad requesst)

В то же время как если руками нажать, то даже через этот форум все работает
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Где то значит что то пропустили, вот код, переходит на страницу авторизации вконтакте.
Код:
#include <IE.au3>
$sLinkApiLogin = 'https://api.vk.com/oauth/authorize?client_id=2334488&scope=493726&redirect_uri=http://sarafanka.com/login.php&response_type=code&display=popup'
$oIe = _IECreate('http://sarafanka.com/login.php')
_IENavigate($oIe,$sLinkApiLogin)
 
Автор
B

berecan

Новичок
Сообщения
4
Репутация
0
Спасибо, видно я косолап. Однако можете объяснить что за шаманство происходят в _IELinkClickByText?

ConsoleWrite($oLink.innertext & '--__--')
вытаскивает Активных заданий: чего в данном окне вобще нет. А то что нужно, не находит..
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
У меня нет активных заданий, это у вас из за того, что уже выполнен вход?


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

Код:
#include <ie.au3>
$new_wind = _IECreate("http://sarafanka.com/login.php")
_IELinkClickByText($new_wind,'Войти через Вконтакте!')

Такой код тоже работает :smile:


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

Скорее всего вам страница из кэша пришла.
 
Автор
B

berecan

Новичок
Сообщения
4
Репутация
0
А как это контролировать? Да, действительно я сначала проверял главную страницу
Код:
$oAs=_IETagNameGetCollection($new_wind,'a')
			For $oA In $oAs

				If StringInStr($oA.href,'http://sarafanka.com/login.php') Then
					$oA.click()
					ConsoleWrite("Нажали на кнопку войти")
					ExitLoop
				EndIf
			Next

а потом уже входил. Это как то влияет на кеширование?


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

Нет это без входа, но с просмотром предыдущей страницы
 
Верх