selenium-chromedriver – 使用browsermob代理运行chrome 59 headless时出现硒chromedriver未知错误

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

我在执行代码时遇到以下异常.初始化驱动程序时抛出异常

当我在评论无头选项(options.addArguments(“headless”))后重新运行我的脚本时,它显示Chrome并且正常运行,但我的目标是将其作为无头运行.你能否提出解决问题的想法?

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

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

添加了以下依赖项

>“org.seleniumhq.selenium”%“selenium-chrome-driver”%“3.4.0”
>“org.seleniumhq.selenium”%“selenium-support”%“3.4.0”
>“net.lightbody.bmp”%“browsermob-core”%“2.1.4”

Scala代码:

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()

最佳答案 根据2.29 webdriver notes页面,它说

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

支持Chrome v56-58

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

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

点赞