如何处理selenium中的打印对话框?

我必须处理打印对话框(在浏览器中单击ctrl-p时出现的对话框)。我尝试了:

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

printDialog.dismiss();

但这没用。我也抓不到它的窗口句柄,因为它不是窗口…

是否可以处理这些对象?如何处理?

回答:

不幸的是,WebDriver无法处理这些(或任何其他浏览器或OS对话框)。此外,它们在浏览器/系统/语言设置中的外观往往有所不同,因此可能没有明确的答案。您需要检测并处理所有可能的情况,以使其在任何地方都有效。您的选择包括:

  • Robot类,它可以让你“按”键盘上的任何编程(或点击盲目),因此,比方说摆脱对话框中,按EnterEsc。但是,如上所述,任何高级交互都取决于OS /语言/打印机。

        // press Escape programatically - the print dialog must have focus, obviously

Robot r = new Robot();

r.keyPress(KeyEvent.VK_ESCAPE);

r.keyRelease(KeyEvent.VK_ESCAPE);

  • AutoIt。这是Windows程序,可用于处理任何系统级自动化。与上述相同。

差不多。如果可以避免出现“打印”对话框,请尝试截取页面的屏幕截图并使用标准Java工具进行打印。

以上是 如何处理selenium中的打印对话框? 的全部内容, 来源链接: utcz.com/qa/425301.html

回到顶部