【发布时间】:2019-06-27 16:38:07
【问题描述】:
我有 VB.net 代码,它利用 Selenium 和 Chrome 驱动程序导航到页面并下载文件。无论是否指定无头选项,它都可以正常工作。但我也想抑制命令窗口。根据我阅读的内容,我需要启动 ChromeDriver,为 HideCommandPromptWindow 属性指定“true”。当我这样做时,我得到这个错误:
OpenQA.Selenium.DriverServiceNotFoundException H结果=0x80131500 Message=文件 False\chromedriver.exe 不存在。驱动可以在http://chromedriver.storage.googleapis.com/index.html下载 源=WebDriver 堆栈跟踪: 在 OpenQA.Selenium.DriverService..ctor(字符串 servicePath,Int32 端口,字符串 driverServiceExecutableName,Uri driverServiceDownloadUrl) 在 OpenQA.Selenium.Chrome.ChromeDriverService..ctor(字符串可执行路径,字符串可执行文件名,Int32 端口) 在 OpenQA.Selenium.Chrome.ChromeDriver..ctor(字符串 chromeDriverDirectory,ChromeOptions 选项) 在 OpenQA.Selenium.Chrome.ChromeDriver..ctor(String chromeDriverDirectory)
我正在使用出现在 CommandWindow 的 TitleBar 中的路径,我在它运行和工作时看到它,所以我知道路径和文件是有效的。
基于“文件 False\chromedrive.exe 不存在...”的错误消息这一事实,我为路径传递的 arg 似乎以某种方式评估为“假”。
这是正在运行的代码的 sn-p - 它在第 219 或 220 行出错:
Dim cOpt As New ChromeOptions()
cOpt.AddArguments("--headless", "--no-sandbox", "--disable-gpu")
Dim param As New Dictionary(Of String, Object)
param.Add("behavior", "allow")
param.Add("downloadPath", G.gRadiusExportsFolder)
Dim cdp As String = FixPathSlash(My.Application.Info.DirectoryPath, False)
Dim d As New ChromeDriver(cOpt)
'LINE 219-- Dim d As New ChromeDriver(ChromeDriverService.CreateDefaultService(cdp, "chromedriver.exe").HideCommandPromptWindow = True)
'LINE220-- Dim d As New ChromeDriver(ChromeDriverService.CreateDefaultService(cdp, "chromedriver.exe").HideCommandPromptWindow = True, cOpt)
Wait(5)
d.ExecuteChromeCommand("Page.setDownloadBehavior", param)
【问题讨论】:
-
驱动的路径在哪里?
-
D:\Steve.Strong\MathnasiumRelatedVisualStudioProjects\GetRAD\GetRAD\bin\Debug
-
我的意思是你的代码在哪里。
-
为了清楚起见,未注释的代码(第 218 行)工作正常。只有当我尝试 CreateDefaultService 时它才会出错。变量 cdp 是我传递的驱动程序的路径。它设置为“My.Application.Info.DirectoryPath”,这是我有驱动程序的地方。
标签: vb.net selenium-chromedriver