5

我使用 Chrome 59 beta 版以无头模式编写了一个安全站点的简单 Selenium 测试(打开页面)。

执行代码时出现以下异常。初始化驱动时抛出异常

当我在评论无头选项 (options.addArguments("headless")) 后重新运行我的脚本时,它显示 Chrome 并且运行良好,但我的目标是将它作为无头运行。您能否提供您对解决我的问题的想法?

例外:在端口 4971 上启动 ChromeDriver 2.29.461585 (0be2cd95f834e9ee7c46bcc7cf405b483f5ae83b) 只允许本地连接。线程“主”org.openqa.selenium.WebDriverException 中的异常:未知错误:Chrome 无法启动:异常退出(驱动程序信息:chromedriver=2.29.461585(0be2cd95f834e9ee7c46bcc7cf405b483f5ae83b),平台=Mac OS X 10.12.2 x86_64)(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:60.14 秒构建信息:版本:'3.4.0',修订:'未知',时间:'未知'

以下是步骤: 我在 Mac 上使用 Scala 和 SBT。Chrome 59 beta 版 ChromeDrive 2.29 发布版。

添加了以下依赖项

  • “org.seleniumhq.selenium”%“硒铬驱动程序”%“3.4.0”
  • “org.seleniumhq.selenium”%“硒支持”%“3.4.0”
  • “net.lightbody.bmp”%“browsermob-core”%“2.1.4”

斯卡拉代码:

val username = "username"
val password = "password"
val domainname = "yoursecuredomain.com"

val browserMobProxyServer = new BrowserMobProxyServer()
browserMobProxyServer.start(0)

browserMobProxyServer.autoAuthorization(domainname, username, password, AuthType.BASIC)

val seleniumProxy = ClientUtil.createSeleniumProxy(browserMobProxyServer)

val options = new ChromeOptions()
options.addArguments("headless")
options.addArguments("--disable-gpu")
options.setBinary("""/Applications/Google Chrome.app/Contents/MacOS/Google Chrome""")

val desiredCapabilities = new DesiredCapabilities()
desiredCapabilities.setCapability(ChromeOptions.CAPABILITY, options)
desiredCapabilities.setCapability(CapabilityType.PROXY, seleniumProxy)

val driver: WebDriver = new ChromeDriver(desiredCapabilities)

val baseUrlString = s"""https://$domainname"""

driver.navigate().to(baseUrlString)

Thread.sleep(3000)

println("title: " + driver.getTitle)

driver.quit()

browserMobProxyServer.abort()
4

1 回答 1

3

根据 2.29 webdriver notes page,它说

----------ChromeDriver v2.29 (2017-04-04)----------

支持 Chrome v56-58

所以你必须降级你的 chrome 版本才能与最新的 chrome webdriver 兼容。

来源: https ://chromedriver.storage.googleapis.com/2.29/notes.txt

于 2017-05-17T15:33:36.373 回答