Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Проблема с входом на сайт изза модального окна логина


(Шевченко Владислав) #1

Такая ситуация 

 

@Before 

public void setUp () {

driver.get(url)

}

 

url понятно что такое.

когда запускается тест, запускается браузер и при вводе урла  - появляется модальное окно (сверху всех). посмотреть локаторы для ввода логин/пароля не могу т.к. нет возможности запустить fire bug или ide.

помогите.

 

скриншот http://clip2net.com/s/2uc4Y

 

 


(Mykhailo Poliarush) #2

это называется NTLM authentication

его можно обойти если вызывать урл следующим видом http://admin:password@host.com

похожие темы

http://automated-testing.info/forum/kak-oboyti-windows-security-pop-v-ie

http://automated-testing.info/knowledgebase/article/webdriver-features-robota-s-upload-popup-windows-native-okno-pri-pomoshchi

http://automated-testing.info/forum/avtorizaciya-ntlm-v-selenium-webdriver-libo-vybor-sredstva-dlya-avtomatizacii

 


(Шевченко Владислав) #3

Спасибо, буду пробовать


(Шевченко Владислав) #4

вы знаете я попробовал. локально у меня все отрабатывает нормально.

решил проблему следующим образом: 

FirefoxProfile profile = new FirefoxProfile();

profile.setPreference("network.automatic-ntlm-auth.trusted-uris", "luxoft.com");

 

сейчас хочу запускать свои тесты на CI сервере (TeamCity) м кроме других проблем появилась эта опять.

когда я запускаю mvn test   на  CI сервере - опять появляется окно ntlm autintification. 

домен у всех серверов одинаковый.

в сторону autoit и т.д. не смотрю - мне кажется что будет тяжело его запускать вне тестов в TeamCity, может я конечно неправ.

помогите кто чем может 


(5am) #5

Есть решение, но для C#, может кому пригодится

в тестах можно использовать стандартный фреймворк от студии - coded ui test. Он нормально работает с виндовыми окнами.

Сам решал такую пролему так - первый раз тест запускается руками, вводится логин, пароль, ставится галочка сохранить - и следующие тесты, после webdriver.navigate - вызывал Keyboard.SendKey(Kes.Return) (писал по памяти)

Тогда нажатие клавиши Enter обрабатывалось нормально и пароль "проглатывался"

Можно было бы и реализовать ввод логина и пароля в виндовое окно напрямую через coded ui test, но "топорное" решение то же устраивало, т.к. оно было временным, поэтому дело до этого не долшло.

 

А по поводу автоита - имхо, относительно нормальное решение, аля:

из тестов, после первого Navigate запускать скрипт автоита который будет вводить логин, пароль, нажимать Enter


(Шевченко Владислав) #6

решил попробовать опять решить этот вопрос с помощью AUTOIT 

написал скрипт 

 

WinWaitActive("Authentication Required")
ControlSend("User Name","User Name","", "mylogin")
ControlSend("Password","Password","","mypassword")
ControlClick("Ok")
 
 
 
добавил метод, который должен запускать этот скрипт
 
 
public void ntlmAut() throws InterruptedException {
        Thread thread = new Thread() {
            public void run() {
                try {
                    String[] commands = new String[]{};
                    commands = new String[]{"c:\\Users\\vshevchenko\\Desktop\\ntlmauthone1.exe"};
                    Runtime.getRuntime().exec(commands);
                } catch (IOException e) {
                }
            }
        };
        thread.start();
    }
 
возник вопрос - где его вызывать?
 
 
 
использую Page Obgect