使用包含Javascript警报

时间:2016-10-14 15:04:27

标签: selenium-webdriver protractor selenium-chromedriver

这是一个遗留应用程序,它具有JavaScript警报以通知正在测试的用户。

我想在警报出现时截取屏幕截图,但是当警报存在时抛出任何controlFlow语句抛出

  

UnexpectedAlertOpenError:意外警报打开:{警告文字:验证错误}

我唯一的选择是browser.switchTo().alert().dismiss()在截图之前解除警报。

想知道是否有人有任何解决方案。

  

Chrome驱动程序:2.23.409699

     

量角器:3.3.0

1 个答案:

答案 0 :(得分:0)

您无法使用webdriver截取JavaScript警报的屏幕截图。但是,您可以使用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();