希望有人能帮我,
场景:我是,
注意:下载过程中不会显示确认消息,只要单击下载图标,文件就会被下载
观察到:当在本地运行测试用例时(从mvn命令和testng命令),它似乎正在工作并将文件下载到我的目录中。
然而,同样的案例似乎不适用于詹金斯。该文件不会下载到 Jenkins Directory。
本地: Windows Machine Jenkins: Linux 浏览器: Chrome
配置的路径:
String parentDirectoryPath = System.getProperty("user.dir");
String testExecutionDownloadFilesFolderPath = parentDirectoryPath + File.separator + "TestingExecutionResult" +File.separator+"DownloadedFiles"+ File.separator;
因此,基本上,文件下载到“DownloadedFiles”文件夹中,该文件夹位于我的项目目录中。
我正在打印下载应该发生的Jenkins路径,它似乎指向正确:
2021-07-15 08:02:13 INFO UI_PAGE - FILEPATH===> /var/jenkins_home/workspace/PROJECT_UI/TestingExecutionResult/DownloadedFiles/
同一案例成功运行,但文件未下载到Jenkins目录中。
如果我在这里错过了什么,请指导我。
文件下载片段:
int beforeDownload = FilesAndDirectoriesHelper.getNoOfFilesInDirectory(
downloadPath);
log.info("Total Files before Download: " + beforeDownload);
JSExecutorHelper.clickOnWebElement(driver, downloadIcon);
log.info("Clicked download icon for entry....");
//Sleep is being used to wait for the download to complete
TimeWaitHandling.threadSleepDelay(10000);
int afterDownload = FilesAndDirectoriesHelper.getNoOfFilesInDirectory(
downloadPath);
log.info("Total Files after Download Start: " + afterDownload);
downloadPath -上面提供的路径(testExecutionDownloadFilesFolderPath)。
//This method is used to return the no. of files present in given folder
public static int getNoOfFilesInDirectory(String directoryFilePath) {
try {
File directory = new File(directoryFilePath);
if(directory!=null) {
File[] files = directory.listFiles();
return files.length;
}
}catch (Exception e) {
// TODO: handle exception
}
return 0;
}
如果Chrome是在Docker容器中运行的,那么您需要阅读Docker文档中的绑定挂载。
要解决这个问题,您需要在浏览器配置中设置下载路径。
在铬中:
String parentDirectoryPath = System.getProperty("user.dir");
String downloadFilepath = parentDirectoryPath+"/downloads/";
APP_LOGS.debug("Chrome Download path set to: "+downloadFilepath);
File downloadFolder = new File(downloadFilepath);
if (!downloadFolder.exists()){
downloadFolder.mkdir();
}
Map<String, Object> prefs = new HashMap<>();
prefs.put("download.default_directory", downloadFilepath);
prefs.put("download.prompt_for_download", false);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", prefs);
WebDriver driver = new ChromeDriver(options);
在火狐中:
FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("browser.download.folderList", 2)
profile.setPreference("browser.download.manager.showWhenStarting", False)
profile.setPreference("browser.download.dir", downloadFilepath)
profile.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/x-gzip")
FirefoxOptions option = new FirefoxOptions();
option.setProfile(profile);
WebDriver driver = new FirefoxDriver(option);
注意:请提供有关该问题的更多信息。就像你正在使用的浏览器,你已经实现的逻辑。
问题内容: 我尝试设置Firefox以便自动下载文件。我在这里输入链接描述中做了建议,但是我无法使它工作。 这是我的代码: PDF仍在浏览器PDF查看器中打开。任何想法? 问题答案: 要禁用在Firefox中打开和下载pdf,请执行以下操作: 可以在此处找到MimeTipes列表。
问题内容: 我正在使用selenium脚本,在其中尝试下载Excel文件并为其指定特定名称。这是我的代码: 无论如何,我可以给下载的文件指定一个特定的名称吗? 码: 问题答案: 您不能通过硒指定下载文件的名称。但是,您可以下载文件,在下载的文件夹中找到最新文件,然后根据需要重命名。 注意:从Google搜索中借用的方法可能有错误。但是你明白了。
上面的代码在colab中调用,使用: 文件夹已正确创建。但是它不是将500MB+zip文件下载到checkpoints文件夹,而是从下载确认页面下载html。在日志记录中,该脚本似乎每次都提取一个新的下载确认字符串,这通常应该强制Google Drive在没有病毒扫描的情况下下载:
我正在使用一个selenium脚本,试图下载一个Excel文件并给它一个特定的名称。这是我的代码: 我可以给正在下载的文件一个特定的名称吗? 代码:
在我为客户制作的网站上,当他们尝试使用Internet Explorer 11下载文件时,他们无法从该站点下载文件。 这些文件保存在我们的服务器上,使用上传文件的数据库,位置,名称和MIME类型的文件能够被下载。例如,路径为“/uploaded _ files/6f/AE 69 BD 966 ba 4c 740 b 8073 ff 969 a 5425 b”,文件名为“Finland Test 1
问题内容: 我正在寻找一种从网站自动下载文件的方法。 目前,该过程确实是手动且繁重的。我进入网页,输入通行证并登录。它打开一个弹出窗口,在这里我必须单击下载按钮以保存.zip文件。 您对我如何自动执行此任务有任何建议? 我在Windows 7上,主要可以使用MS Dos Batch或python。但是我愿意接受其他想法。 问题答案: 您可以使用Selenium Web驱动程序自动执行下载。您可以在