如果打开另一个 chrome 实例,Selenium chromedriver 将不会启动 URL

标签 selenium

我尝试使用 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/

相关文章:

Javascript 更改事件未在 cucumber 测试中触发

java - Selenium - 使用通配符从下拉列表中选择一个选项?

javascript - 如何使用 Selenium 和 Python 单击文本为(全选)的下拉项

c# - 使用 Selenium Webdriver C# 关闭弹出对话框

xpath 定位器在 FF3 中工作,但在 IE7 中不起作用

java - WebDriver等待iframe,通过其名称的一部分进行识别

xml - 从 XPATH 后代值获取父节点

selenium - 如何处理selenium中的 "Authentication Required"弹出窗口

java - 使用 selenium webdriver 下载文件夹中的文件

testing - Behat/Mink 测试以检查元素是否包含内容