java - 从unix机器识别windows selenium节点中下载的文件
问题描述
我的 selenium 代码部署在 jenkinns 中,它位于 unix 机器中。当我的调度程序触发一个作业套件时,作业将在 Windows 中的 selenium 节点上运行。Gere,我有一个测试用例,文件在其中一个节点中下载,我需要验证下载的文件。
如何从 unix 机器识别 Windows 中下载的文件(两者都是不同的环境)。
解决方案
如果您想在 chrome 上验证这一点,下面的代码是一个解决方案。
注意:它写在打字稿上,所以你必须适应它。
function checkChromeForDownloadedFile(fileName: string, state: string = 'COMPLETE') {
// open new tab
await browser.executeScript('return window.open()');
// switch to downloads tab window
let tabs: string[] = await browser.getAllWindowHandles();
await browser.switchTo().window(tabs[1]);
// open downloads page
await browser.get('chrome://downloads');
// 1 sec delay.
await browser.sleep(1000);
let downloadedItems;
try {
await browser.wait(() => {
// fetch downloaded items
return browser.executeScript('return downloads.Manager.get().items_').then((result) => {
downloadedItems = result;
if (!downloadedItems) {
return false;
}
// search for downloaded file with state complete and filename
return downloadedItems.some(i => i.file_name === fileName && i.state === state.toUpperCase());
}).catch( () => {
return false;
});
}, 10000, `File ${fileName} with download sate ${state} was not found within 10 seconds`);
} catch (error) {
console.log('there was an error while trying to fetch downloaded files');
throw error;
}
// close the tab
await browser.close();
// switch back to original window
await browser.switchTo().window(tabs[0]);
}
推荐阅读
- html - 使用用户输入创建 HTML URL
- python - 我想知道为什么这是真的
- jquery - 如何使用 AJAX 从控制器中获取数据?
- ubuntu - apache2 ubuntu 在 5:30 IST 或 00:01 UTC 重新启动/重新加载,而不是某些文件权限自动更改并且 google bot 爬行速度降低
- r - 按组对变量求和
- flutter - 如何检测是否在flutter中的有状态类/小部件之外单击
- reactjs - 使用 react 和 django 进行身份验证
- starttls - 如何证明 stunnel 正在发送 STARTTLS 并加密远程 SMTP 会话?
- serialization - Kafka Json 值反序列化器
- java - Jackson:多态反序列化作为子属性