java - 在 selenium 中,如何处理打印对话框?

  显示原文与译文双语对照的内容
0 0

我得处理打印对话框( 提取的区域时显示在浏览器中单击ctrl p ) 。 我试过,配置如下:

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

但是这样是不行的。 也抓不到它的窗口句柄,因为它不是窗口。。。

有可能处理这些对象和操作方法

时间:原作者:3个回答

0 0

不幸的是,web driver无法处理这些( 或其他任何浏览器或OS对话框) 。 此外,它也会听着跨浏览器/ 系统/ 语言设置不同,所以大概没有明确的回答。 你需要检测并处理每个可能的情况下,使其工作的所有位置。 你的选项包括:

  • " Robot类,它允许你" 按" 通过编程键盘上的任何( 或单击盲目地),因此摆脱Ի麻烦- - 比如说按 EnterEsc 。 但是,就像前面说过的,任何高级交互所依赖OS / language / 打印机。

    // 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 工具。

原作者:
0 0

slanec的回答正确,web driver本身不为此功能。 顺便问一下我解决这个在Windows的System .Windows .Forms .SendKeys对象:

    SendKeys.SendWait("^p");
    System.Threading.Thread.Sleep(500);
    SendKeys.SendWait("~");
    // give it a minute to spool onto the printer
    System.Threading.Thread.Sleep(5000);

实际上我有个关闭此循环中打印一堆语句。 工作原理和魅力。

原作者:
0 0

我有静态变量时出错 VK_ESCAPE里面有只需导入来解决的 import java.awt.event.KeyEvent;

原作者:
...