保存pdf涉及使用HTML 5 download
屬性。我們可以創建一個a
元素,比單擊它時會爲我們節省pdf。
基本上,我們需要建立我們自己的<a download="ourfile.pdf" href="blob:ourPath">
其中download
是我們要保存的文件名,href
是我們pdf
的URL,或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\\',
}
}
},
}