我尝试使用 selenium weDriver 加载 chrome 配置文件。配置文件加载正常,但在尝试加载 URL 时失败。
我注意到,当打开另一个 chrome 实例时,无论它是否由 webDriver 打开,都会发生此问题。我有 Selenium 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
最佳答案
我找到了解决此问题的方法。我注意到发生此问题的原因是,如果存在另一个使用相同配置文件的打开实例,则 chromedriver 将无法使用相同的配置文件启动。例如,如果 chrome.exe 已使用默认配置文件打开,则 chromedriver.exe 将无法启动默认配置文件,因为 chrome.exe 已打开并使用相同的配置文件。
要解决此问题,您需要通过复制默认配置文件来创建单独的自动化配置文件,以便 chromedriver.exe 和 chrome.exe 不会共享相同的默认配置文件。
默认的 chrome 配置文件位于此位置:
C:\Users\yourUserName\AppData\Local\Google\Chrome\User Data\
将用户数据文件夹中的所有文件复制到新文件夹并将其命名为 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 保持打开状态
关于如果打开另一个 chrome 实例,Selenium chromedriver 将不会启动 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38193554/