【问题标题】:webdriverio - download pdfs in chromewebdriverio - 在 chrome 中下载 pdf
【发布时间】:2022-10-19 18:49:49
【问题描述】:

我是使用 webdriverio 的新手,并尝试自动下载 pdf 文件。该文件在浏览器中打开,我不知道如何下载它 - 最好下载到我本地机器上指定的文件夹。我看到一些旧论坛帖子可能建议使用 chromedriver,但是,由于提供了最少的代码 sn-ps,我无法理解它是否是正确的方法。这是我到目前为止所拥有的(尽管最后两行不起作用):

const LoginPage = require('../pageobjects/login.page');

describe('Payroll Download Application', () => {
    it('Login Fail Page', async () => {

        await LoginPage.open();
        await LoginPage.login();
        await $("a[href='PayCycleReports']").click()
        await $('a=Payroll Summary').click()
        const handles = await browser.getWindowHandles()
        await browser.switchToWindow(handles[1])
        const elem = await $("#viewer").shadow$("#toolbar").shadow$("#downloads").shadow$("#downloads").shadow$("#download")
        await elem.click()
    });
});

任何帮助解决它将不胜感激。谢谢 :)

【问题讨论】:

    标签: webdriver-io


    【解决方案1】:

    这可以通过 browser.execute 来完成。 需要通过 JS 选择元素并为其添加“下载”属性。如果您单击具有“下载”属性的元素,pdf 将不会打开但会被下载。 例子:

    await browser.execute(function(){
            document.querySelector("#node-32 > div > div > div > ul:nth-child(4) > li:nth-child(1) > a").setAttribute("download", "download")
        },)
    

    如果您需要不同的选择器(不是 CSS),您可以使用 getElementById、getElementsByName、getElementsByTagName、getElementsByClassName、getElementByXpath 等。

    【讨论】:

      猜你喜欢
      • 2012-09-15
      • 1970-01-01
      • 1970-01-01
      • 2019-04-12
      • 1970-01-01
      • 2016-09-17
      • 2017-12-22
      • 2021-04-30
      • 2021-03-21
      相关资源
      最近更新 更多