Что нового

Анонимайзер. Получить адрес текущей страницы после переадресации

alex747

Новичок
Сообщения
7
Репутация
0
Доброго времени суток!

Возникла такая проблемма:
Надо заходить тремя персонажами в игру, при том, что один из них постоянно должен быть онлайн. Как мы знаем, ИЕ может такое позволить себе, если запускать разные сессии браузеров.

Правда, никто не знает, как это делать.

Поэтому я решил вводить 2 персонажей через сайты - анонимайзеры

Но появилась одна проблема:

предположим, так я ввожу адрес в поле и перехожу на сайт
Код:
$oIE     = _IECreate("http://webmasta.org/anonymizer/",0,1,1)
	_IELoadWait($oIE)

  	$oForm1 = _IEFormGetObjByName($oIE, "anon")
	$oURL = _IEFormElementGetObjByName($oForm1, "urlText")
	_IEFormElementSetValue($oURL, "http://вашсайт.зона")
	_IEAction($oURL, "focus")
	Send("{ENTER}")


Но вот проблема.
Страница то уже другая, адрес типа такого http://llzzz.glbdqyha.clux.paralabs.net/
а если я захочу ввести логин и пароль

Код:
$oForm   = _IEFormGetObjByName($oIE,"login_form")
	$oLogin  = _IEFormElementGetObjByName($oForm,"login_form")
	$oPass   = _IEFormElementGetObjByName($oForm,"password_form")
	_IEFormElementSetValue($oLogin,"Логин")
	_IEFormElementSetValue($oPass,"Пароль")
	_IEFormSubmit($oForm)





то я не смогу, так как $oForm - это сайт анонимайзера и формы там те же, что и на сайте http://webmasta.org/anonymizer/
Вопрос. как получить новый адрес страницы, что бы сделать _IENavigate
Или как по другому решить эту проблему
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
alex747 [?]
Или как по другому решить эту проблему

Код:
$oIE = _IECreate("http://webmasta.org/anonymizer/")
$oForm = _IEFormGetObjByName($oIE, 'tollform')
$oText = _IEFormElementGetObjByName($oForm, "u")
_IEFormElementSetValue($oText, "http://ya.ru")
_IEFormSubmit($oForm)

_IELoadWait($oIE)

$oForm = _IETagNameGetCollection($oIE,'form', 1)
$oText = _IEFormElementGetObjByName($oForm, "text")
_IEFormElementSetValue($oText, "Autoit")
_IEFormSubmit($oForm)
 
Автор
A

alex747

Новичок
Сообщения
7
Репутация
0
Garrett сказал(а):
alex747 [?]
Или как по другому решить эту проблему

Код:
$oIE = _IECreate("http://webmasta.org/anonymizer/")
$oForm = _IEFormGetObjByName($oIE, 'tollform')
$oText = _IEFormElementGetObjByName($oForm, "u")
_IEFormElementSetValue($oText, "http://ya.ru")
_IEFormSubmit($oForm)

_IELoadWait($oIE)

$oForm = _IETagNameGetCollection($oIE,'form', 1)
$oText = _IEFormElementGetObjByName($oForm, "text")
_IEFormElementSetValue($oText, "Autoit")
_IEFormSubmit($oForm)


И на этом спасибо, ну а если мне надо ввести все таки в первое поле?
Дело в том, что если во второе поле, то выключаются javascript`ы, без которых делать мне дальше нечего :(
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
alex747 [?]
а если я захочу ввести логин и пароль
Я привел вам пример.
[?]
ну а если мне надо ввести все таки в первое поле?
1. Не вижу проблем.
2. В приведённом мною примере, для ya.ru, нет второго поля.

Для предметного разговора, нужны данные для теста (как минимум адрес сайта).
 
Автор
A

alex747

Новичок
Сообщения
7
Репутация
0
Сайт, к сожалению, дать не могу, но все оказалось намного проще, просто нужно было выбрать правильный Id коллекции, только я не могу правильно нажать на кнопке "Открыть адрес!" на самом сайте анонимайзера.
Решилось так:


Код:
#include <IE.au3>

$oIE = _IECreate("http://webmasta.org/anonymizer/")
$oForm = _IEFormGetObjByName($oIE, 'anon')
$oText = _IEFormElementGetObjByName($oForm, "urlText")
_IEFormElementSetValue($oText, "Сайт, который нужен")

_IEAction($oText, "focus") ; вот здесь если написать _IEFormSubmit($oForm), 
;то оно как то хитро перебрасывает во второе поле ввода
; Поэтому кликаем Энтер в поле ввода
Send("{ENTER}")
_IELoadWait($oIE)


$oForm = _IETagNameGetCollection($oIE,'form', 0)
$oLogin = _IEFormElementGetObjByName($oForm, "login")
$oPass = _IEFormElementGetObjByName($oForm, "pass")
_IEFormElementSetValue($oLogin, "Ник")
_IEFormElementSetValue($oPass, "пароль")
_IEFormSubmit($oForm)




Я Вам очень благодарен, за то, что мне помогли
 

madmasles

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


С уважением, ваш Глобальный модератор.






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

alex747,
А так?
Код:
#include <IE.au3>

Opt('MustDeclareVars', 1)

Local $sUrl = 'http://webmasta.org/anonymizer/', $i_Err = 1, $oIE, $oForm, $oObj, $oTmp, $iSelect, $sActionUrl = 'http://autoit-script.ru/'

Do
	$oIE = _IECreate($sUrl)
	If @error Then ExitLoop
	$oForm = _IEGetObjByName($oIE, 'anon')
	If @error Then ExitLoop
	$oObj = _IEFormElementGetObjByName($oForm, 'urlText')
	If @error Then ExitLoop
	_IEFormElementSetValue($oObj, $sActionUrl)
	If @error Then ExitLoop
	$oObj = _IEFormElementGetObjByName($oForm, 'geo')
	If @error Then ExitLoop
	$oTmp = _IETagNameGetCollection($oObj, 'option')
	If @error Then ExitLoop
	$iSelect = Random(0, @extended - 1, 1)
	_IEFormElementOptionSelect($oObj, $iSelect, 1, 'byIndex')
	If @error Then ExitLoop
	$oObj = _IEFormElementGetObjByName($oForm, 'operation')
	If @error Then ExitLoop
	$oTmp = _IETagNameGetCollection($oObj, 'option')
	If @error Then ExitLoop
	$iSelect = Random(0, @extended - 1, 1)
	_IEFormElementOptionSelect($oObj, $iSelect, 1, 'byIndex')
	If @error Then ExitLoop
	$oObj = _IETagNameGetCollection($oForm, 'button', 0)
	If @error Then ExitLoop
	_IEAction($oObj, 'click')
	If @error Then ExitLoop
	_IELoadWait($oIE)
	If @error Then ExitLoop
	$i_Err = 0
Until 1
$oForm = 0
$oObj = 0
$oTmp = 0
$iSelect = 0
If $i_Err Then
	MsgBox(16, 'Error', 'Error')
Else
	MsgBox(64, 'Info', 'OK')
EndIf
 
Верх