当前位置: 首页 > 面试题库 >

如何告诉Selenium在打印弹出窗口上按“取消”?

彭畅
2023-03-14
问题内容

我正在检查是否使用Selenium出现页面。但是,当我单击页面时,会出现打印机打印提示(如显示选择打印机等的窗口)。Selenium如何通过单击“取消”来关闭此窗口?

我尝试查找警报,但由于打印窗口是系统提示,因此似乎无法使用。它无法识别出现的任何警报。

我尝试使用的最新方法是仅发送选项卡(如tab)并输入,以选择取消按钮,但是,它无法识别出任何按键被按下。

我该如何处理?

public static boolean printButton() throws Exception {

    WebDriver driver = new FirefoxDriver();
    driver.get("website");


    try {

        Thread.sleep(3000);
        WebElement temp = driver.findElement(By.xpath("//*[@id='block-print-ui-print-links']/div/span/a"));
        temp.click();
        Actions action = new Actions(driver); 
        action.sendKeys(Keys.TAB).sendKeys(Keys.ENTER);

        Thread.sleep(6000);

     }

     catch (Exception e) {

        System.out.println("No button.");
        driver.close();
        return false;

     }

问题答案:

我只是通过覆盖print方法来禁用打印对话框:

((JavascriptExecutor)driver).executeScript("window.print=function(){};");

但是,如果您的目标是测试是否调用了打印,则:

// get the print button
WebElement print_button = driver.findElement(By.cssSelector("..."));

// click on the print button and wait for print to be called
driver.manage().timeouts().setScriptTimeout(20, TimeUnit.SECONDS);
((JavascriptExecutor)driver).executeAsyncScript(
    "var callback = arguments[1];" +
    "window.print = function(){callback();};" +
    "arguments[0].click();"
    , print_button);


 类似资料:
  • 问题内容: 自Chrome 71以来,它运行完美。 但它不再起作用。 有没有人想出一种方法可以在Chrome 75的打印预览中单击“取消”? 我捕获到异常,它只是说: 问题答案: 在75.0.3770.142(Official Build)(64位)版本上进行了测试。它们现在具有其他元素 用于控制台中的测试 与executor.executeScript 编辑 ::对于版本 79.0.3945.8

  • 问题内容: 我有一个显示项目列表的应用程序。 用户可以单击一个项目,然后在模式弹出窗口(居中的DIV,使用JavaScript显示)中查看其详细信息。我需要在该弹出窗口上有一个按钮,该按钮将允许用户仅打印模式弹出窗口的内容。 这是针对仅需要在IE7 +中运行的内部应用程序的。当用户单击模式弹出窗口上的“打印”按钮时,该项目的状态将更改为“已打印”(出于内部业务原因…)。 我正在使用ASP.NET和

  • 完成表单并点击注册按钮后,我得到一个弹出的信息消息(模态),消息中有close(X)和OK按钮和标题:在ABC Project下,显示了以下内容&通知用户注册成功的文本。 我尝试了几种方法来点击这个弹出窗口中的OK按钮,但都没有成功: 附加提示: null 我很感激你给我的提示和支持谢谢

  • 问题内容: 我想关闭弹出窗口(已知的窗口名称),然后返回到原始窗口。我该怎么办?如果我无法获得窗口中关闭按钮的常量。那么有没有达到目标的一般行为? 问题答案: 你有没有尝试过:

  • 我正在使用Selenium从一个在线数据库中提取结果。然而,一旦我选择了我的结果并去导出它们,一个弹出窗口就会出现。通常,我会将框架切换到这个窗口,但它似乎是javascript生成的。当弹出窗口中有元素时,具体名称会不断变化。例如,有一个submitButton id标记。然而,它总是附加着不同结尾。例如,它将是id=“SubmitButton_15BB0B69431”,但下一次它将是完全不同的

  • 所以我正在c#winform中使用硒火狐web驱动程序,我在下面有这段代码来获取弹出窗口的句柄,当您单击“webtraffic_popup_start_button”时显示,它应该获得弹出窗口的句柄,但弹出句柄与当前句柄相同。 任何帮助将不胜感激 这就是弹出式菜单的样子。