2016-04-29 6 views
0

Я хочу загрузить файл с моего локального пользователя, не используя инструмент Auto it. Поэтому я использовал Action event, чтобы нажать кнопку «Обзор». Я посылаю путь к файлу, используя sendKeys по следующему коду:org.openqa.selenium.UnhandledAlertException: присутствует модальный диалог:

"driver.findElement(By.xpath("//input[@type='file']")).sendKeys("path of file");" 

Я получаю "org.openqa.selenium.UnhandledAlertException: Modal dialog present: " ошибку.

Я не мог обработать это исключение.

Пожалуйста, кто может помочь мне в этом ...

+1

Я думаю, что есть всплывающее окно, и вам нужно закрыть это перед sendkeys. – noor

+0

Элементы могут быть заполнены. попробуйте с a) driver.manage(). timeouts(). implicitlyWait (60, TimeUnit.SECONDS); (or) b) Элемент WebElement = driver.findElement (By.id ("ELEMENT_ID")); wait.until (ExpectedConditions.visibilityOf (элемент)); – AVA

ответ

0

Вы должны закрыть предупреждение вы получаете перед отправкой ключей. Вы можете сделать это следующим образом:

Alert alert = driver.switchTo().alert(); 
// Prints text and closes alert 
System.out.println(alert.getText()); 
alert.accept(); // or alert.dismiss(); 

или, если вам не нужно сообщение, которое вы можете просто сделать

alert.accept(); 

EDIT

Другим способом вы можете сделать это, является обертывание ваш код внутри попытки:

try{ 
    driver.findElement(By.xpath("//input[@type='file']")).sendKeys("path of file"); 
} catch(UnhandledAlertException e){ 
    Alert alert = driver.switchTo().alert(); 
    alert.accept(); 
    driver.findElement(By.xpath("//input[@type='file']")).sendKeys("path of file"); 
} 

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

+0

Привет, Aurasphere, Спасибо за ур ответ. Я тоже пробовал это предупреждение, но он не обрабатывается. Сообщение об ошибке, подобное «нет оповещения», отображается в консоли – sajju

+0

Такая же ошибка отображается «Исключение в потоке» main »org.openqa .selenium.UnhandledAlertException: присутствует модальный диалог: « – sajju

+0

Это очень странно. Я подозреваю, что проблема в том, что всякий раз, когда вы закрываете свое предупреждение, появляется еще один. Не могли бы вы проверить это вручную? Кроме того, не могли бы вы сообщить больше информации об оповещении, которое вы получаете? Спасибо. – Aurasphere