2017-02-06 1 views
-1

У меня есть онлайн-приложение, в котором есть продукт, в котором есть кнопка «Просмотр». При нажатии кнопки «Вид» отображается предупреждение. В Alert есть четыре (4) поля: Текст предупреждения, поле ввода ввода, кнопка OK & Кнопка отмены. Текст предупреждений читается как «Текст предупреждения: продукт отсутствует на складе! Введите свой электронный адрес».Selenium Webdriver [Java] [gecko]: Как передать строку в поле ввода в Alert

Если я Отмените предупреждение с моим кодом Селен Java, он работает хорошо:

//Switch to the Alert & Dismiss 
driver.switchTo().alert().dismiss(); 

Если я просто нажмите кнопку ОК с моим кодом Селен Java, он делает хорошо работает:

//Click on Accept 
driver.switchTo().alert().accept(); 

Но если я пытаюсь представить свой электронный идентификатор в поле ввода текста на чеке,

Thread.sleep(3000); 
driver.switchTo().alert().sendKeys("[email protected]"); 
//driver.switchTo().alert().sendKeys("debanjan"); 

//Click on Accept 
driver.switchTo().alert().accept(); 

Селен показывает org.ope nqa.selenium.WebDriverException следующим образом:

Текст предупреждения: Продукт не в наличии! Пожалуйста, введите свой e-mail Id org.openqa.selenium.WebDriverException: Отсутствует параметр «значение» (ПРЕДУПРЕЖДЕНИЕ: Сервер не предоставляет никакой информации StackTrace) длительность команд или тайм-аут: 6 миллисекунд

ОС Детали: ' Windows 8' профи, os.arch: 'amd64', os.version: '6,2',

Java.version: '1.8.0_77'

Информация Driver: org.openqa.selenium.firefox.FirefoxDriver

Can anyo Не помогите мне, пожалуйста?

Странно то, что: Когда я пытаюсь выполнить автономный класс Java Selenium для обработки предупреждения (т. Е. Передавая идентификатор электронной почты в текстовом поле Alert), этот фрагмент кода работает нормально.

driver.switchTo().alert().sendKeys("[email protected]"); 

Но когда тот же код реализуется через БАЗЫ (который я реализовал) [Класс: PlaceOrder, метод: orderCamera()], то EMAILID никогда не пишется в Textbox поле Alert.

+0

попытаться использовать робота для передачи значения в окне предупреждения если driver.switchTo(). alert(). sendKeys ("debanjan") не работает. – shank087

ответ

0

Вы попробуйте driver.switchTo().alert().sendKeys()

+0

Да, я пробовал это: << driver.switchTo(). Alert(). SendKeys ("[email protected]"); >> но это не работает для меня. – DebanjanB

+0

@Dev Это решение работает для меня. Не могли бы вы проверить, является ли это реальным оповещением или модальным с предупреждением. – Roy

+0

Странно то, что: Когда я пытаюсь выполнить автономный Selenium Java Class для обработки Alert (т. Е. Передавая идентификатор электронной почты в текстовом поле Alert), этот фрагмент кода отлично работает. \t driver.switchTo(). Alert(). SendKeys ("[email protected]"); Но когда тот же код реализуется через FRAMEWORK [Class: PlaceOrder, Method: orderCamera()], идентификатор электронной почты никогда не записывается в поле «Текстовое поле» оповещения. – DebanjanB

2

Вам необходимо отправить электронное письмо с конкретным текстовым полем

Alert alert = driver.switchTo().alert(); 
WebElement inputTextField = driver.findElement(...); 
inputTextField.sendKeys("[email protected]"); 
alert.accept(); 

И переключиться обратно

driver.switchTo().defaultContent(); 
+0

Я хотел попробовать этот подход, но ни с Firebug/Firepath, ни с xPathCheeker. Я могу узнать xpath элемента (то есть текстовое поле). Любое другое предложение? – DebanjanB

+0

@Dev Можете ли вы поделиться сайтом? – Guy

+1

@Guy, вы уверены, что этот код может когда-либо работать? всплывающие окна, вызванные 'alert()', 'prompt()', 'confirm()' не являются частью 'DOM' и, следовательно, нет возможности выбрать« элементы »из всплывающего окна. – Andersson

Смежные вопросы