使用量角器将 pdf 保存到文件
Save pdf to file with protractor
我需要将 pdf 保存到文件中。问题是,在我的页面上单击 Print
按钮后,它会将我重定向到一个包含 pdf 的新页面。这对用户来说很好,因为它是标准的 chrome pdf 查看器,但问题是我无法单击 download
按钮,因为我唯一能看到的 html 是:
<body style="background-color: rgb(38,38,38); height: 100%; width: 100%; overflow: hidden; margin: 0">
<embed width="100%" height="100%" name="plugin" id="plugin" src="blob:https://myPage.com/e8aa96bf-5a46-4f74-8df6-424881a8774a" type="application/pdf" internalinstanceid="34" title="">
</body>
有人知道如何在量角器中下载 pdf 文件吗?
保存 pdf 涉及使用 HTML 5 download
属性。我们可以创建一个 a
元素,当我们点击它时将为我们保存 pdf。
基本上我们需要创建自己的 <a download="ourfile.pdf" href="blob:ourPath">
其中 download
是我们要保存的文件的名称,href
是 url pdf
,或 embed
的 src
属性。
我们可以使用 browser.driver.executeScript();
创建此元素。所以我们可以创建这样的东西:
browser.getAllWindowHandles().then(function (handles) {
browser.switchTo().window(handles[1]).then(function () {
browser.ignoreSynchronization = true;
browser.driver.executeScript(`var a = document.createElement('a');
a.href = arguments[0];
a.id="downloadPdf";
a.download = "abc.pdf";
a.text="DOWNLOAD"
a.style="width:200px;height:200px;"
var b = document.getElementsByTagName('body')[0];
b.insertBefore(a, b.firstChild);
`,
browser.driver.getCurrentUrl()).then(() => {
browser.driver.findElement(by.id('downloadPdf')).click();
browser.ignoreSynchronization = false;
});
});
});
我们用第二个参数传递 url
并插入我们的新元素作为 body
的第一个元素。然后我们找到我们新建的元素,点击。
我们还可以指定保存文件的路径。这是通过在我们的配置文件中设置 default_directory
来完成的。
capabilities: {
'browserName': 'chrome',
'chromeOptions': {
prefs: {
'download': {
'prompt_for_download': false,
'default_directory': 'C:\your\custom\path\',
}
}
},
}
我需要将 pdf 保存到文件中。问题是,在我的页面上单击 Print
按钮后,它会将我重定向到一个包含 pdf 的新页面。这对用户来说很好,因为它是标准的 chrome pdf 查看器,但问题是我无法单击 download
按钮,因为我唯一能看到的 html 是:
<body style="background-color: rgb(38,38,38); height: 100%; width: 100%; overflow: hidden; margin: 0">
<embed width="100%" height="100%" name="plugin" id="plugin" src="blob:https://myPage.com/e8aa96bf-5a46-4f74-8df6-424881a8774a" type="application/pdf" internalinstanceid="34" title="">
</body>
有人知道如何在量角器中下载 pdf 文件吗?
保存 pdf 涉及使用 HTML 5 download
属性。我们可以创建一个 a
元素,当我们点击它时将为我们保存 pdf。
基本上我们需要创建自己的 <a download="ourfile.pdf" href="blob:ourPath">
其中 download
是我们要保存的文件的名称,href
是 url pdf
,或 embed
的 src
属性。
我们可以使用 browser.driver.executeScript();
创建此元素。所以我们可以创建这样的东西:
browser.getAllWindowHandles().then(function (handles) {
browser.switchTo().window(handles[1]).then(function () {
browser.ignoreSynchronization = true;
browser.driver.executeScript(`var a = document.createElement('a');
a.href = arguments[0];
a.id="downloadPdf";
a.download = "abc.pdf";
a.text="DOWNLOAD"
a.style="width:200px;height:200px;"
var b = document.getElementsByTagName('body')[0];
b.insertBefore(a, b.firstChild);
`,
browser.driver.getCurrentUrl()).then(() => {
browser.driver.findElement(by.id('downloadPdf')).click();
browser.ignoreSynchronization = false;
});
});
});
我们用第二个参数传递 url
并插入我们的新元素作为 body
的第一个元素。然后我们找到我们新建的元素,点击。
我们还可以指定保存文件的路径。这是通过在我们的配置文件中设置 default_directory
来完成的。
capabilities: {
'browserName': 'chrome',
'chromeOptions': {
prefs: {
'download': {
'prompt_for_download': false,
'default_directory': 'C:\your\custom\path\',
}
}
},
}