无法在Selenium中使用用户个人资料启动Chrome浏览器

时间:2017-10-20 11:17:55

标签: java google-chrome selenium selenium-chromedriver

我正在尝试使用现有用户个人资料打开Chrome浏览器窗口。

    String dir= "/Users/labuser/Library/Application Support/Google/Chrome";        
    ChromeOptions options = new ChromeOptions();
    options.addArguments("--user-data-dir="+dir);
    driver = new ChromeDriver(options); // throws an exception!

我通过查看user directory path页面确认了chrome://version。 (下面的截图)

enter image description here

由于某种原因,此代码以非常少的信息抛出异常

org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start: exited abnormally
  (Driver info: chromedriver=2.33.506106 (8a06c39c4582fbfbab6966dbb1c38a9173bfb1a2),platform=Mac OS X 10.12.6 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 60.33 seconds
Build info: version: '2.53.0', revision: '35ae25b', time: '2016-03-15 17:00:58'
System info: host: 'arustagi-wx-3', ip: '10.41.25.35', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.12.6', java.version: '1.8.0_111'
Driver info: org.openqa.selenium.chrome.ChromeDriver
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206)
at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:249)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:131)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:144)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:170)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:159)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:148)

修改

我使用以下Chrome浏览器,这属于支持的浏览器范围

Version 61.0.3163.100

2 个答案:

答案 0 :(得分:1)

您使用的是最新版本的ChromeDriver

chromedriver=2.33.506106

与Selenium 2.53 。您应该使用latest release

无论如何,你的浏览器版本是什么? Here您可以查看支持的浏览器版本(基于您的chromedriver)。

修改

我尝试过:

  • Selenium 3.5.3
  • ChromeDriver v2.33
  • Google Chrome版本62.0.3202.62(官方版本)(64位)

chrome://version/ ,我的个人资料路径是

/Volumes/MacintoshSSD/Users/DurdenP/Library/Application Support/Google/Chrome/Default 

尝试

    String chromeDriver ="pathTo/ChromeDriver/chromedriver";
    System.setProperty("webdriver.chrome.driver", chromeDriver);
    ChromeOptions options = new ChromeOptions();
    String dir= "/Volumes/MacintoshSSD/Users/DurdenP/Library/Application Support/Google/Chrome";
    options.addArguments("user-data-dir="+dir);
    ChromeDriver driver = new ChromeDriver(options);

它有效。

答案 1 :(得分:0)

终于解决了这个问题。我正在研究macOS,发现我需要彻底退出浏览器。

关闭浏览器窗口后,我必须右键单击Dock中的图标并按退出。在此之后,selenium脚本将完美地运行。