【发布时间】:2014-08-09 13:10:23
【问题描述】:
我正在使用 selenium 和 chromedriver 来自动化登录页面并将文件下载到特定文件夹。我可以登录并单击下载链接。但这会将文件下载到默认下载文件夹。但我希望将文件下载到我想要的文件夹中。 我使用了下面的代码(vb.net)。我从 C# 中的this link 得到它
Protected Function downloadFile(ByVal driver As IWebDriver, ByVal url As String, ByVal localPath As String)
Try
Dim client = New WebClient()
client.Headers(HttpRequestHeader.Cookie) = cookieString(driver)
client.DownloadFile(url, localPath)
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function
Private Function cookieString(ByVal driver As IWebDriver) As String
Try
Dim cookies = driver.Manage().Cookies.AllCookies
Dim a As New System.Text.StringBuilder
For index As Integer = 0 To cookies.Count - 1
a.Append(cookies(index).Name)
a.Append("=")
a.Append(cookies(index).Value)
a.Append("; ")
Next
cookieString = a.ToString
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function
但它不起作用。下载的文件包含页面的 html 源,但来自该 url 的实际文件应该是 pdf(当我在同一个 chrome 窗口中手动导航 url 时,我下载了 pdf 文件)我在做什么错了?我认为在 cookieString 函数中处理 cookie 可能是错误的。或者有没有其他方法可以在我登录页面后将文件下载到我所需的路径。
【问题讨论】:
-
@Bjørn-RogerKringsjå 我已经用我面临的问题更新了这个问题。
标签: vb.net selenium selenium-chromedriver