2016-10-14 4 views
2

これはテスト中のユーザに通知するJavaScriptアラートを持つレガシーアプリケーションです。Javascriptアラートを含む分度器でスクリーンショットを撮る

アラートが存在するが、アラートが存在している間、それはどのcontrolFlow文の実行を結局のところ私の唯一のオプションは却下するbrowser.switchTo().alert().dismiss()にある

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

スローしたとき、私は、画面のスクリーンショットを利用したいと思いますスクリーンショットを撮る前に警告を発する。

誰にも解決策があるのだろうか。

Chrome Driver: 2.23.409699

Protractor: 3.3.0

+1

上記の問題を解決しましたか?私も同じことを試みていますが、アラートボックスのスクリーンショットを撮ることに失敗しました。 – Gaurav

+0

これらのアラートをHTMLモーダルダイアログに変換するプロセスで、回避策が見つかりませんでした。 – bhantol

答えて

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(); 
+0

ロボットクラスとは何ですか?インポートを表示できますか? – bhantol

関連する問題