2016-07-05 61 views
0

我试图使用selenium weDriver加载chrome配置文件。配置文件加载正常,但尝试加载URL时失败。如果另一个chrome实例打开,Selenium chromedriver不会启动URL

我注意到这个问题发生在有另一个chrome实例打开时,不管它是否被webDriver打开。我有硒2.53.1。

System.setProperty("webdriver.chrome.driver","C:\\chromedriver.exe"); 
ChromeOptions options = new ChromeOptions(); 
options.addArguments("user-data-dir=C:/Users/useName/AppData/Local/Google/Chrome/User Data"); 
options.addArguments("--start-maximized"); 
driver = new ChromeDriver(options); 

driver.get("www.google.com") // here is where it fails. It works fine if I close all chrome browsers before I run the test 
+0

那不是possible.But你可以调整根据您的需要围绕[看看这个](http://stackoverflow.com/q/27630091/3122133) – Madhan

回答

3

我找到了解决此问题的解决方法。我注意到发生了这个问题,因为如果有另一个打开的实例使用相同的配置文件,则chromedriver将无法使用相同的配置文件启动。例如,如果chrome.exe已经使用默认配置文件打开,chromedriver.exe将无法启动默认配置文件,因为chrome.exe已打开并使用相同的配置文件。

要解决此问题,您需要通过复制默认配置文件来创建单独的自动配置文件,以便chromedriver.exe和chrome.exe不共享相同的默认配置文件。

默认的Chrome个人资料是在以下位置:

C:\用户\ yourUserName \应用程序数据\本地\谷歌\镀铬\用户数据\

复制从用户数据文件夹中的所有文件到一个新的文件夹并将其称为AutomationProfile

将文件复制到新文件夹后,即可将其用于脚本。

 String userProfile= "C:\\Users\\YourUserName\\AppData\\Local\\Google\\Chrome\\AutomationProfile\\"; 
     ChromeOptions options = new ChromeOptions(); 
     options.addArguments("user-data-dir="+userProfile); 
     options.addArguments("--start-maximized"); 

     driver = new ChromeDriver(options); 

确保您在测试结束使用driver.quit(),这样你不保持chromedriver.exe打开

+0

我已经有这个问题多年了:(希望有一个官方的解决方案。 –

相关问题