【问题标题】:How to click on save button in chrome print privew page using selenium Java如何使用 selenium Java 在 chrome 打印预览页面中单击保存按钮
【发布时间】:2019-08-09 21:40:49
【问题描述】:

我目前正在寻找使用 selenium Java 在 chrome 打印预览窗口中单击 Sava 按钮的解决方案。

有什么方法可以处理 chrome 打印预览页面吗? 我已经尝试过使用 Robot 类,但它对我的应用程序来说似乎并不可靠/稳定。

请有人帮我用 selenium Java 实现这个目标。

【问题讨论】:

  • 请参阅:How do I do X? SO 的期望是,提出问题的用户不仅会进行研究以回答他们自己的问题,还会分享研究、代码尝试和结果。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另见:How to Ask

标签: selenium google-chrome printing preview


【解决方案1】:

我在 Chrome 浏览器的打印预览页面上看不到任何“保存”按钮

这里是点击“取消”按钮的方法,我相信您将能够修改代码以符合您的要求:

  1. 首先确保使用Explicit Wait 等待预览页面可用
  2. 通过WebDriver.switchTo() function将上下文更改为打印预览窗口
  3. 打印预览页面上的所有元素都隐藏在ShadowDom 中,因此您需要:

  4. 示例代码以防万一:

    new WebDriverWait(driver, 10).until(ExpectedConditions.numberOfWindowsToBe(2));
    driver.switchTo().window(driver.getWindowHandles().stream().skip(1).findFirst().get());
    WebElement printPreviewApp = driver.findElement(By.tagName("print-preview-app"));
    WebElement printPreviewAppConten = expandShadowRoot(printPreviewApp, driver);
    WebElement printPreviewSidebar = printPreviewAppConten.findElement(By.tagName("print-preview-sidebar"));
    WebElement printPreviewSidebarContent = expandShadowRoot(printPreviewSidebar, driver);
    WebElement printPreviewHeader = printPreviewSidebarContent.findElement(By.tagName("print-preview-header"));
    WebElement printPreviewHeaderContent = expandShadowRoot(printPreviewHeader, driver);
    printPreviewHeaderContent.findElements(By.tagName("paper-button")).get(1).click();
    

    expandShadowRoot 函数如下所示:

    private WebElement expandShadowRoot(WebElement parent, WebDriver driver) {
        return (WebElement) ((JavascriptExecutor) driver).executeScript("return arguments[0].shadowRoot", parent);
    }
    

【讨论】:

    【解决方案2】:

    保存按钮不起作用,因为页面不是网页的一部分。 selenium 仅支持基于 Web 的应用程序。

    但是您可以使用 SIKULI 来处理上述情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-18
      • 1970-01-01
      • 1970-01-01
      • 2020-10-30
      • 2020-01-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多