2016-03-30 12 views
10

セレンテストの実行中にChromeデベロッパーコンソールを開く方法を尋ねます。現在、テストが実行されているときにF12キーを押してコンソールを手動で開くと、テストはすぐに応答しなくなり、しばらくして失敗します。JAVAを使用してSelenium WebDriverでChromeデベロッパーコンソールを開く方法

デベロッパーコンソールを開いてテストを開始する方法を教えてもらえますか。テスト実行中に発生するコンソールエラーをキャッチ/観察できます。

答えて

12

できません。 ChromeドライバはChromeリモートデバッグプロトコルを使用してブラウザと通信します。開発者コンソールでも使用されているのと同じプロトコルです。残念ながら、Chromeは、一度に1つのクライアントのみがプロトコルを使用して接続できるように設計されているため、開発者用ツールまたはドライバのいずれかを意味しますが、同時に両方を意味するわけではありません。

+0

だから、これに最も近い(最も近い)作業は何ですか? – Uziii

+0

@Uziii logging!他には行かない –

0

Chromeで開発ツールを開くためのショートカットのキープレスイベントをシミュレートしましたか?

String openDevTools = Keys.chord(Keys.ALT, Keys.CONTROL, "i"); 
driver.findElement(By.ByTagName("body")).sendKeys(openDevTools); 

これは理想的ではありません。厳密なテスト環境では、MacとWindowsの両方をカバーするためにプラットフォーム検出が必要です。私は絶対にこれを回避することをお勧めします(それが動作する場合でも)、しかし、あなたが本当に必要な場合は回避策として可能です。

これを行うと、ウィンドウ自体のフォーカスを失う可能性があります。このような場合は、次のようなものが必要です。 -

String parentHandle = driver.getWindowHandle(); // get the current window handle 
// do your dev tool stuff here 
driver.switchTo().window(parentHandle); // switch back to the original window 

便利なリンクそれはどこでもあなたを取得しない場合:How to handle the new window in Selenium WebDriver using Java?

編集:ただ、質問を再読み込み、これがとにかく動作するとは思わないが。単体テストは、コードのロジックのエラーをキャプチャする必要があります。セレンテストは、ユーザーの旅程をテストするだけで、ユーザーの旅程が短くなった場合にエラーをキャプチャする必要があります。 セレンテストでコードロジック/エラーをテストするべきではありません。

関連する問題