Selenium chromedriver не будет запускать URL, если открыт другой экземпляр Chrome
Я попытался загрузить профиль Chrome с помощью селена weDriver. Профиль загружается нормально, но не удается, когда он пытается загрузить 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
2 ответа
Я нашел решение этой проблемы. Я заметил, что эта проблема возникает, потому что chromedriver не сможет запускаться с тем же профилем, если есть другой открытый экземпляр, использующий тот же профиль. Например, если chrome.exe уже открыт с профилем по умолчанию, chromedriver.exe не сможет запустить профиль по умолчанию, поскольку chrome.exe уже открыт и использует тот же профиль.
Чтобы исправить это, вам нужно будет создать отдельный профиль для автоматизации, скопировав профиль по умолчанию, чтобы chromedriver.exe и chrome.exe не использовали один и тот же профиль по умолчанию.
Профиль Chrome по умолчанию находится в этом месте:
C: \ Users \ Ваше имя пользователя \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 открытым
Я добавил ChromeOption «без песочницы», и, похоже, он помог мне с аналогичной проблемой. Знайте, что это меняет степень безопасности вашего просмотра. Вот ссылка, которая объясняет это подробнее: https://www.google.com/googlebooks/chrome/med_26.html
var options = new ChromeOptions();
//I had more options added, but this is the example of the argument I referred to
options.AddArgument("no-sandbox");