Что нового

Авторизация на сайтах

Anna

Новичок
Сообщения
119
Репутация
2
Здравствуйте.
Помогите, пожалуйста, авторизоваться на сайте
_http://ruforum.mt5.com/

Перепробовала все примеры из ветки.

Уникальный селектор:
#navbar_username

#navbar_password

.loginbutton

Одна из попыток:
Код:
#include <IE.au3>

Local $Login = "Anna", $pass = "333444"

$oIE = _IECreate("http://ruforum.mt5.com/")

$oLogin = _IEGetObjById($oIE, "authentificationLogin")
_IEFormElementSetValue($oLogin, $Login)
$oPass = _IEGetObjById($oIE, "authentificationPassword")
_IEFormElementSetValue($oPass, $pass)
$oAuth = _IEGetObjById($oIE, "connexion-submit")
_IEAction($oAuth, "click")
_IELoadWait($oIE)
 
A

Alofa

Гость
Anna
Код:
#include <IE.au3>
Local $oIE, $oForm, $oQuery, $sUrl = 'http://ruforum.mt5.com', $sLogin = 'Anna', $sPass = '333444'

$oIE = _IECreate($sUrl)
$oForm = _IEFormGetCollection($oIE, 0)
$oQuery = _IEFormElementGetCollection($oForm, 2)
If IsObj($oQuery) Then ; Это на случай, если вы уже авторизованы
	_IEFormElementSetValue($oQuery, $sPass)
	_IEFormElementSetValue(_IEFormElementGetCollection($oForm, 1), $sLogin)
	_IEFormSubmit($oForm)
	_IENavigate($oIE, $sUrl)
EndIf
 

Anna

Новичок
Сообщения
119
Репутация
2
inververs сказал(а):
Anna [?]
Через # обозначаются ID
Спасибо, скажите, пожалуйста, как отправить класс loginbutton.


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

Alofa сказал(а):
Авторизация проходит успешно. Спасибо.
Однако, после авторизации в ручном режиме, на месте полей для ввода логина, пароля и кнопки “Вход” появляется логин (имя) пользователя, а при авторизации с помощью скрипта, поля логин, пароль и кнопка “Вход” остаются. После обновления страницы появляется имя пользователя, как и положено. Попыталась после авторизации нажать F5
Код:
Send("Сегодняшняя дата и время {F5}")

но в процессе работы возникает ошибка, прикрепила снимок.
Подскажите, пожалуйста, что сделать, чтобы имя пользователя появлялось после авторизации без перезагрузки страницы, или как правильно сделать перезагрузку.
 

Вложения

  • _error.JPG
    _error.JPG
    14.8 КБ · Просмотры: 10
A

Alofa

Гость
Anna сказал(а):
... после авторизации в ручном режиме, на месте полей для ввода логина, пароля и кнопки “Вход” появляется логин (имя) пользователя...
При авторизации в любом режиме, после ввода логина, пароля и нажатия "Вход", появляется всплывающее окно (типа спасибо за то что вошли) и висит насколько секунд, после чего страница перезагружается. По крайней мере так у меня.
Для того чтобы ускорить процесс в скрипте есть
Код:
_IENavigate($oIE, $sUrl)

Если у вас как-то по другому, то попробуйте скрипт без этой функции.
 

Anna

Новичок
Сообщения
119
Репутация
2
Alofa сказал(а):
Anna сказал(а):
... после авторизации в ручном режиме, на месте полей для ввода логина, пароля и кнопки “Вход” появляется логин (имя) пользователя...
При авторизации в любом режиме, после ввода логина, пароля и нажатия "Вход", появляется всплывающее окно (типа спасибо за то что вошли) и висит насколько секунд, после чего страница перезагружается. По крайней мере так у меня.
Для того чтобы ускорить процесс в скрипте есть
Код:
_IENavigate($oIE, $sUrl)

Если у вас как-то по другому, то попробуйте скрипт без этой функции.
Удаление указанной вами строки решило эту проблему. Спасибо.
 

Вложения

  • error_.JPG
    error_.JPG
    22.2 КБ · Просмотры: 17
A

Alofa

Гость
Anna сказал(а):
Однако возникает следующая ситуация:
Я думаю, спецификация данной темы не предусматривает других ситуаций. ;D
Заводите новую. И не забудьте прикрепить код.
 

Anna

Новичок
Сообщения
119
Репутация
2

k377

Новичок
Сообщения
3
Репутация
0
Добрый день, помогите пожалуйста нажать на кнопку "Войти" при авторизации на сайте
alfadirect.ru
Не могу разобраться как получить идентификатор кнопки.
Код:
	        <div class="form_row">
					<a class="react-render btn" data-component="RegisterUserPopup" data-props="{&quot;login&quot;:null,&quot;registrationState&quot;:null,&quot;mayHasLogin&quot;:false,&quot;loginUrl&quot;:&quot;/Account/Login?isRegistration=True&quot;,&quot;softwareUrl&quot;:&quot;/Services/Software?toCrypto=True&quot;,&quot;fullName&quot;:null}" href="">Зарегистрироваться</a>
		        
		        <button class="btn">Войти</button>
	        </div>
 
A

Alofa

Гость
k377
Как вариант. Для Internet Explorer:
Код:
#include <IE.au3>

Local $sLogin = 'Имя пользователя' ; Имя пользователя
Local $sPassword = 'Пароль' ; Пароль
Local $sRememberMe = True ; Запомнить меня

_Authorize_Alfadirect($sLogin, $sPassword, $sRememberMe)
; MsgBox(4096, '', '@error = ' & @error & @LF & '@extended = ' & @extended)

Func _Authorize_Alfadirect($sLogin, $sPassword, $sRememberMe = False)
	Local $oForm, $sUrl = 'https://alfadirect.ru/Account/Login', $oIE = _IECreate($sUrl, 1)
	If Not IsObj($oIE) Then Return SetError(1, @extended, 0)
	$oForm = _IEFormGetCollection($oIE, 0)
	_IEFormElementSetValue(_IEFormElementGetObjByName($oForm, 'login'), $sLogin)
	_IEFormElementSetValue(_IEFormElementGetObjByName($oForm, 'pass'), $sPassword)
	If @error Then Return SetError(2, @extended, 0)
	If $sRememberMe Then _IEAction(_IEGetObjById($oIE, 'RememberMe'), 'click')
	If @error Then Return SetError(3, @extended, 0)
	_IEFormSubmit($oForm)
	$iVal = (@error) ? SetError(4, @extended, 0) : 1
	Return $iVal
EndFunc   ;==>_Authorize_Alfadirect


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

Для Chrome-подобных браузеров:
Код:
#include <UIAutomate.au3> ; Ссылка на UDF: http://autoit-script.ru/index.php?topic=16780.0

Local $sLogin = 'Имя пользователя' 	; Имя пользователя
Local $sPassword = 'Пароль' 		   ; Пароль
Local $sRememberMe = True 			; Запомнить меня
Local $sURl = 'https://alfadirect.ru/Account/Login'

; Запуск Chrome с параметром --force-renderer-accessibility (При отсутствии этого параметра доступ к элементам страницы будет запрещён)
Run(@ProgramFilesDir & '\Google\Chrome\Application\chrome.exe --force-renderer-accessibility ' & $sURl)

$hWnd = WinWaitActive('[REGEXPCLASS:Chrome;TITLE:Авторизация]', '', 6)
If Not $hWnd Then Exit MsgBox(4096 + 16, 'Сообщение', 'Окно не найдено, завершаем работу скрипта')

_Authorize_Alfadirect($hWnd, $sLogin, $sPassword, $sRememberMe)
; MsgBox(4096, '', '@error = ' & @error)

Func _Authorize_Alfadirect($hWnd, $sLogin, $sPassword, $sRememberMe = False)
	Local $oLogin, $oRememberMe, $oLogInButton, $oParent = _UIA_GetElementFromHandle($hWnd)
	If Not IsObj($oParent) Then Return SetError(1, 0, 0)
	$oLogin = _UIA_WaitControlTypeElement($oParent, $UIA_EditControlTypeId, 'Имя пользователя', Default, False, 10)
	If Not IsObj($oLogin) Then Return SetError(2, 0, 0)
	If $sRememberMe Then
		$oRememberMe = _UIA_GetControlTypeElement($oParent, $UIA_CheckBoxControlTypeId, 'Запомнить меня')
		If Not IsObj($oRememberMe) Then Return SetError(3, 0, 0)
		_UIA_ElementMouseClick($oRememberMe)
	EndIf
	$oLogInButton = _UIA_GetControlTypeElement($oParent, $UIA_ButtonControlTypeId, 'Войти')
	If Not IsObj($oLogInButton) Then Return SetError(4, 0, 0)
	BlockInput(1)
	_UIA_ElementSetFocus($oLogin)
	Send($sLogin & '{TAB}' & $sPassword)
	BlockInput(0)
	Return _UIA_ElementMouseClick($oLogInButton)
EndFunc   ;==>_Authorize_Alfadirect
 

k377

Новичок
Сообщения
3
Репутация
0
Огромное спасибо! Все получилось!
 

Sergey_

Новичок
Сообщения
1
Репутация
0
Доброго времени суток! Подскажите пожалуйста, что я делаю не так, логин и пароль вводится без проблем, но кнопка не нажимается, перепробовав разные способы ничего не вышло...
Код:
#include <IE.au3>;Используем модусь интернет экспплорер
$oIE = _IECreate("http://merapoisk.ru/login",0,1,0,1)
$oPoisk = _IEGetObjById($oIE, "show_objects");
_IEAction($oPoisk, "focus")
Sleep(2000);Ждём 2 секунды
_IEAction($oPoisk, "click")
Вот код страницы:
Код:
<div class="middle">
   <p>Ограничить датой:</p>
   <input type="text" class='datepickeron calendar timepicker' id='date_from' name="date_from" value="19.06.2016"     placeholder="дата от">
 <input type="text" class='datepickerto calendar timepicker' id='date_to' name="date_to" value='' placeholder="дата до">                                            
 <input type="button" class="show" id="show_objects" value="показать">
</div>
 
A

Alofa

Гость
Sergey_ сказал(а):
... Подскажите пожалуйста, что я делаю не так...

Так, наверно (проверить нет возможности)
Код:
#include <IE.au3>;Используем модусь интернет экспплорер
$oIE = _IECreate("http://merapoisk.ru/login")
; Здесь код ввода логина и пароля
$oPoisk = _IEGetObjById($oIE, "show_objects");
_IEAction($oPoisk, "focus")
_IEAction($oPoisk, "click")
 

fulse

Новичок
Сообщения
2
Репутация
0
Добрый день!
Ни как не могу сделать авторизацию на сайте...
Проблема в том что логин и пароль надо вводить в сплывающем окне (как при входе на фтп) :blink:
вариант
Код:
http://user:[email protected]/
не прокатывает, ругается вот так на внутренний скрипт IE.au3:
"C:\PROGRA~2\AutoIt3\Include\IE.au3" (272) : ==> The requested action with this object has failed.:
$oObject.navigate($sUrl)
$oObject^ ERROR
Подскажите пожалуйста как быть.
Ещё загвоздка в том что хотелось бы без отображения ИЕ делать, что бы запустился и работал до закрытия программы/скрипта
По нажатию кнопки просто переходит на определенную страницу
 

fulse

Новичок
Сообщения
2
Репутация
0
видимо ни кто не знает, не встречался с таким...
сам решил данный вопрос методом научного тыка!
для своей задачи, вот так вполне работает:
Код:
$objHTTP = ObjCreate("Microsoft.XMLHTTP")
$objHTTP.open ("get", "http://192.168.1.250/admin/set.cgi?start=on", False, "admin", "pass123")
$objHTTP.send


ранее я писал:
fulse сказал(а):
это локальный сайт...
но что бы было понятно можете попробовать войти на этот фтп сервер:
Код:
ftp://hut.ru/

P.S. ещё дополню вопрос: можно ли как то выполнять отдельные гет запросы? авторизованные запросы как в примере:
Код:
wget --http-user=admin --http-passwd=pass123 http://192.168.1.250/admin/set.cgi?start=on
 

Тевер

Новичок
Сообщения
6
Репутация
0
Привет! Помогите пожалуйста с заполнением полей вот тут. У меня получается заполнить форму пароля (она "pass"), а вот с логином беда: не находит её.... Буду очень признателен за помощь!
Вот, что уже написал
Код:
$Url = ("http://dentist.freeyellow.com/system/users/respond.php")
$oIE = _IECreate($Url)
$1 = _IEGetObjByName($oIE, "login")
_IEFormElementSetValue ($1, "login")
$2 = _IEGetObjByName($oIE, "pass")
_IEFormElementSetValue ($2, "password")


Пароль оно вводит, а логин не находит. Строка, куда нужно вводить логин вот
Код:
<input type="text" size="20" name="login" value="">
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967

Тевер

Новичок
Сообщения
6
Репутация
0
Garrett сказал(а):
Но! Посмотрите внимательно на объект form что содержит объект input и-и-и ...
Скажите, как его зовут?
Его тоже зовут login :( А как тогде мне обратиться не ко всей форме, а конкретно к этому полю, подскажите, пожалуйста?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Я неспроста указал вам на эту тему в столе заказов, но, к сожалению, вы её даже не смотрели.
Ответ #46


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

Код:
$oForm   = _IEFormGetObjByName($oIE,"login")
 
Верх