作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好吧,所以我前段时间写了这个函数,它运行良好。
基本上我正在下载一个文件,然后检查 chrome://downloads/中是否有 n 个项目以及文件名是否匹配
this.checkDownload = async function checkDownload(fileNameRegEx) {
var regex = new RegExp(fileNameRegEx);
if ((await browser.getCapabilities()).get('browserName') === 'chrome') {
await browser.get('chrome://downloads/');
const items = await browser.executeScript('return downloads.Manager.get().items_');
expect(items.length).toBe(1);
expect(items[0].file_name).toMatch(regex);
}
};
今天我不得不重用它,但它抛出了一个错误:
Cannot read property 'get' of undefined
我认为问题在于 downloads.Manager 未定义。
Chrome api 有什么变化吗?有新名称吗?
我在官方 chrome 补丁说明中找不到任何相关文档。
我尝试查看下载对象,但找不到列出已下载项目的任何属性/方法。
最佳答案
如果你想检查是否有下载并且下载完成了,这个可行:
var items = document.querySelector('downloads-manager').shadowRoot.querySelectorAll('#downloadsList downloads-item');
if (Array.from(items).every(i => i.shadowRoot.querySelector('#progress') == null || i.shadowRoot.querySelector('#progress').value === 100))
return Array.from(items).reduce((acc, curr) => [...acc, curr.shadowRoot.querySelector('div#content #file-link').href], []);
我的基于 downloads.Manager
的代码也坏了...我很想知道它被删除的原因。
编辑:看到这里,有人遇到了同样的问题并且有一个修复:https://support.google.com/chrome/thread/28267973?hl=en
关于javascript - 无法返回 chrome ://downloads/list from a Protractor download test case,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60150152/
我是一名优秀的程序员,十分优秀!