gpt4 book ai didi

excel - 使用 selenium 将文件下载到特定目录

转载 作者:行者123 更新时间:2023-12-04 20:28:42 28 4
gpt4 key购买 nike

我正在使用凭据抓取网站,并且必须单击导出 pdf 文件的元素(按钮)(而不是另存为窗口)。

该按钮直接将 pdf 文件导出到 C:\Users\User\Downloads

如何将目录更改为桌面?

另外如何重命名文件?

用于单击此按钮的代码

On Error Resume Next
Do While .FindElementByXPath("//*[@id='theBttnbobjid_1545645103945_dialog_submitBtn']") Is Nothing
DoEvents
Loop
On Error GoTo 0
.FindElementByXPath("//*[@id='theBttnbobjid_1545645103945_dialog_submitBtn']").Click

这是与该按钮相关的 html

<tbody><tr valign="middle"><td height="21" width="5" style="background-image:url('aspnet_client/system_web/4_0_30319/crystalreportviewers13/js/crviewer/../dhtmllib/images/skin_standard/button.gif');background-position:0px 0px;"></td><td id="theBttnCenterImgbobjid_1545648005071_dialog_submitBtn" align="center" class="wizbutton" style="padding-left:3px;padding-right:3px;background-image:url('aspnet_client/system_web/4_0_30319/crystalreportviewers13/js/crviewer/../dhtmllib/images/skin_standard/button.gif');background-position:0px -42px;"><nobr><a id="theBttnbobjid_1545648005071_dialog_submitBtn" href="javascript:void(0)" class="wizbutton" role="button">Export</a></nobr></td><td height="21" width="5" style="background-image:url('aspnet_client/system_web/4_0_30319/crystalreportviewers13/js/crviewer/../dhtmllib/images/skin_standard/button.gif');background-position:0px -21px;"></td></tr></tbody>

最佳答案

您在开始时指定默认下载 SetPreference .然后,您可以通过在该文件夹中查找最新修改的文​​件来重命名该文件(在这种情况下,我使用带有 .csv 掩码的文件系统对象)

如果您有实际的下载 URL,请使用 URLMon or binary download .

Option Explicit
Public Sub SpecifyDownloadFolder()
Dim d As WebDriver, filename As String, myFolder As Object
Const URL = "https://www.stats.govt.nz/large-datasets/csv-files-for-download/"
Const DOWNLOAD_DIRECTORY As String = "C:\Users\User\Downloads"
Const FILE_NAME As String = "myNewCsv.csv"
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set d = New ChromeDriver
With d
.SetPreference "download.default_directory", DOWNLOAD_DIRECTORY
.SetPreference "download.directory_upgrade", True 'safeguard
.SetPreference "download.prompt_for_download", False 'safeguard
.get URL
.FindElementByCss("h3 [download]").Click
Application.Wait Now + TimeSerial(0, 0, 5)
d.Quit
End With

Set myFolder = fso.GetFolder(DOWNLOAD_DIRECTORY)

Dim objFile As Object, dteFile As Date

dteFile = DateSerial(1900, 1, 1)
For Each objFile In myFolder.Files
If objFile.DateLastModified > dteFile And fso.GetExtensionName(objFile.Path) = "csv" Then
dteFile = objFile.DateLastModified
filename = objFile.NAME
End If
Next objFile
If filename <> vbNullString And Not fso.FileExists(DOWNLOAD_DIRECTORY & "\" & FILE_NAME) Then
fso.MoveFile DOWNLOAD_DIRECTORY & "\" & filename, DOWNLOAD_DIRECTORY & "\" & FILE_NAME
End If
End Sub

关于excel - 使用 selenium 将文件下载到特定目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53911876/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com