при входе на сайт, появляется окно с запросом ввода логина и пароля.
в seleniumlibrary был кейворд press key native и можно было просто ввести нужные данные и нажать enter.
Как это можно сделать в selenium2library, не зная локатора?
На будущее, прикладывай код, который пробуешь и как выглядит код страницы.
А по твоему случаю есть Submit Form кейворд, подходит?
Не подходит:
Message: u’Modal dialog present’
Кода пока что и нет, ведь не знаю как это обойти:
open browser http://remoteserverip/gui/# ie
submit form
Так у тебя открывается модальное окно, тогда тебе нужно работать с popup насколько я понимаю, а для этого есть кейворд Select Window
Ну так открываешь в popup код страницы и смотришь. Прикрепи скриншот, чтобы точно определить, что у тебя выскакивает
Вот такое окно открывается при входе
Ну так это совсем не то о чем я говорю, это NTLM
Вот похожие темы:
Спасибо буду пробовать с autoit/pywinauto, т.к. варианты с реестром и логином в адресе не подходят
а ты пробовал вариант с
http://myusername:myuserpassword@mydomain.com/mypath
?
Да, вариант с логином и паролем в адресе не подходит.
Я так понял что в IE 8 такое не проходит, а мне надо именно в IE.
Как можно ввести нужные буквы, если pywinauto не удается установить, при установке с помощью setup.py install, выдаются ошибки:
Traceback (most recent call last):
File “setup.py”, line 50, in
import pywinauto
File “c:\pywinauto\pywinauto_init_.py”, line 28, in
import findwindows
File “c:\pywinauto\pywinauto\findwindows.py”, line 32, in
import win32structures
File “c:\pywinauto\pywinauto\win32structures.py”, line 458, in
assert sizeof(MENUITEMINFOW) == 44, sizeof(MENUITEMINFOW)
AssertionError: 48
версия питона : python 2.7.5 64 bit
Есть какие-то другие методы?
ошибку можно репортить разработчикам
а на счет других методов:
- править реестр
- использовать python win32api напрямую
- использовать browsermob-proxy в качестве прокси сервера, где будет устанавливаться логин и пароль для запросов
- ну и другие варианты, которые были указаны в постах на которые я давал ссылки
сталкивался с такой проблемой.
решили так - не средствами автоматизации, а настройкой инфраструктуры
настроили по такому принципу - если сайт дергался изнутри сети (домена) то требования к авторизации не было. если снаружи - было.
поговорите с web dev/admin’ом - возможно и у вас сделают такое исключение
Решили это путем создания vbs скрипта, который вводит пароль.
Ну раз решили, то плиз помоги другим таким же и выложи сюда решение. Чтобы другие, которые потом будут смотреть тоже видели, как можно обойти такую же проблему.
open browser http://address/gui/
sleep 2 seconds
run “d:\users\me\tests\sendkeys.vbs”
В sendkeys.vbs:
Set WshShell = WScript.CreateObject(“WScript.Shell”)
WshShell.SendKeys “password”
WshShell.SendKeys “{ENTER}”
Перед этим ввел логин и пароль, чтоб был запрос только пароля.
отлично, спасибо.
Удалось сделать еще лучше, с помощью python-модуля win32com :
open browser http://remoteserver ie
sleep 2 seconds
${shell} set variable win32com.client.Dispatch(‘WScript.Shell’)
evaluate ${shell}.SendKeys(“${mypass}”, 0) win32com, win32com.client
evaluate ${shell}.SendKeys(“{Enter}”, 0) win32com, win32com.client
Но возникает еще вопрос: почему после выполнения такого логина, робот выполняет нужные тесты, но если я хочу в этом же окне что-то сделать вручную - то все ссылки, элементы заблокированы, не могу ни на что кликнуть, приходится открывать новое окно и логиниться вручную.