2016-06-03 1 views
1

Мне нужно войти в всплывающее окно, и я протестировал каждый метод, предложенный людьми, и никто из них не работал! Так что я пытаюсь сделать это просто перейти к URL-адресу и быстро ввести username\t и password и нажать Enter. Обычно это можно сделать, выбирая элемент input, но не в этом случае. Как я могу ввести без выбора элемента?Основная автоматизация в селене без выбора элемента

enter image description here

+0

Вы пытались сосредоточиться на новом фрейме, который генерируется всплывающим окном? –

+0

@JonathanKempf 'IAlert alert = driver.SwitchTo(). Alert();'? даже если я переключаюсь на новый кадр, мне не нужно выбирать элемент? – Yar

+0

Если я не ошибаюсь, это не предупреждение из JavaScript, встроенного в или связанного с загруженным HTML. Это диалоговое окно BASIC AUTH. Выполнение BASIC AUTH в селене является [открытой проблемой] (https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/34), хотя, как сообщается, [обходной путь] (https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/34#issuecomment-191403370). –

ответ

3

Это то, что я пытался и работал меня в прошлом.

System.Windows.Forms.SendKeys.SendWait("UserNoome"); 
System.Windows.Forms.SendKeys.SendWait({TAB}); 
System.Windows.Forms.SendKeys.SendWait("Passwoord"); 
+0

Работает как шарм. Спасибо, Кам. – Yar

+0

. При нажатии кнопки 'Log In' вам нужно нажать Tab еще раз после заполнения пароля. поэтому последний шаг должен быть чем-то вроде «System.Windows.Forms.SendKeys.SendWait (« \ t \ n »);' – Yar

+0

@HoomanYar Последним шагом должно быть 'System.Windows.Forms.SendKeys.SendWait ({ENTER}); ' –

0

Предполагая, что фокус находится на раме. Попробуйте использовать Actions для потребу [код в Java]:

Actions action = new Actions(webdriver); //replace with your driver 
action.sendKeys("username").perform(); 
action.sendKeys("\t").perform(); //possibly Keys.TAB 
action.sendKeys("password").perform(); 
action.sendKeys("\n").perform(); //possibly Keys.ENTER 

Edit: Также keyDown(Keys.TAB) можно было бы использовать в качестве альтернативы для sendKeys("\t")

+0

не работает. дает мне «OpenQA.Selenium.UnhandledAlertException» в первом 'sendKeys' – Yar