2016-10-14 4 views
2

Это устаревшее приложение, которое имеет оповещения JavaScript, чтобы уведомить пользователей, которые находятся под тестированием.Съемка снимка с помощью Транспортера, в том числе предупреждение Javascript

Я хотел бы сделать снимок экрана, когда оповещения присутствует, но, как выясняется, любое исполнение ControlFlow заявление в то время оповещения присутствует бросает

UnexpectedAlertOpenError: unexpected alert open: {Alert text : Validation Errors}

Мой единственный вариант заключается в browser.switchTo().alert().dismiss() уволить предупреждение перед скриншотом.

Удивление, если у кого-либо есть решение.

Chrome Driver: 2.23.409699

Protractor: 3.3.0

+1

Вы нашли решение по данной проблеме. Я также пытаюсь сделать то же самое, но не могу снять снимок экрана предупреждения. – Gaurav

+0

Я не нашел обходных решений, поэтому в процессе преобразования этих предупреждений в HTML-модальный диалог. – bhantol

ответ

0

Вы не можете сделать снимок экрана оповещения JavaScript с помощью webdriver. Вы можете, однако, сделать это с классом Robot. Вот пример кода:

WebDriver driver = new ChromeDriver(); 
driver.get("your url"); 

driver.manage().window().maximize(); 

// This step will result in an alert on screen 
WebElement element = driver.findElement(By.xpath("use xpath to enable alert")).click; 

Alert alert = driver.switchTo.alert(); 

Thread.sleep(2000); 

// Press the key combination of (Windows + PrintScreen) by using Robot Class 
Robot rb = new Robot(); 
rb.keyPress(KeyEvent.VK_WINDOWS); 
rb.keyPress(KeyEvent.VK_PRINTSCREEN); 
rb.keyRelease(KeyEvent.VK_PRINTSCREEN); 
rb.keyRelease(KeyEvent.VK_WINDOWS); 

alert.accept(); 
+0

Что такое класс роботов? Можете ли вы показать импорт? – bhantol

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