How to handle print dialog in Selenium?


I have to handle print dialog (the same one that appears when clicking ctrl-p in browser). I tried with:

Alert printDialog = driver.switchTo().alert();

but it didn’t work. Also I couldn’t catch its window handle, because it’s not a window…

Is it possible to handle these objects and how?

  • You must to post comments

Unfortunately, WebDriver can’t handle these (or any other browser or OS dialog). Moreover, they tend to look differently across browsers / systems / language settings, so there’s probably no definite answer. You’ll need to detect and handle every possible case in order to make it work everywhere. Your options include:

  • The Robot class, it allows you to “press” programatically anything on the keyboard (or clicking blindly) and therefore getting rid of the dialog by, say, pressing Enter or Esc. However, as told above, any advanced interaction is dependant on OS / language / printer.

    // press Escape programatically - the print dialog must have focus, obviously
    Robot r = new Robot();
  • AutoIt. It’s a Windows program useful for handling any system-level automation. Same dependancy as above.

That’s more or less it. If you can avoid the print dialog, try to take screenshot of the page and print it using standard Java tools.

  • You must to post comments
Showing 1 result
Your Answer
Post as a guest by filling out the fields below or if you already have an account.