【问题标题】:Selenium ChromeDriver not going to url using default user dataSelenium ChromeDriver 不会使用默认用户数据访问 url
【发布时间】:2017-12-06 03:11:16
【问题描述】:

它会在带有默认开始菜单的新窗口中打开,并显示 Chrome 正在由自动化测试软件控制的通知,但它不会转到该 url。

System.setProperty("webdriver.chrome.driver","C:\\Users\\"+System.getProperty("user.name")+"\\chromedriver.exe");

    ChromeOptions options = new ChromeOptions();
    options.setBinary("C:\\Users\\"+System.getProperty("user.name")+"\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe");
    options.addArguments("--user-data-dir=C:\\Users\\"+System.getProperty("user.name")+"\\AppData\\Local\\Google\\Chrome\\User Data\\");
    WebDriver driver = new ChromeDriver(options);
    driver.get("https://www.google.com");

我也尝试过:

        System.setProperty("webdriver.chrome.driver","C:\\Users\\"+System.getProperty("user.name")+"\\chromedriver.exe");

    ChromeOptions options = new ChromeOptions();
    options.setBinary("C:\\Users\\"+System.getProperty("user.name")+"\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe");
    options.addArguments("--user-data-dir=C:\\Users\\"+System.getProperty("user.name")+"\\AppData\\Local\\Google\\Chrome\\User Data\\");
    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability(ChromeOptions.CAPABILITY, options);
    WebDriver driver = new ChromeDriver(capabilities);
    driver.get("https://www.google.com");

它给出的异常

线程“主”org.openqa.selenium.WebDriverException 中的异常:未知错误:Chrome 无法启动:崩溃 (驱动程序信息:chromedriver=2.30.477700 (0057494ad8732195794a7b32078424f92a5fce41),platform=Windows NT 10.0.14393 x86_64)(警告:服务器未提供任何堆栈跟踪信息) 命令持续时间或超时:61.65 秒

我使用的是最新的 ChromeDriver 2.30 和 Selenium 3.4.0 版本

【问题讨论】:

  • 您的谷歌浏览器版本是否在 58 - 60 之间?
  • @renato 是的,是 59
  • Selenium Docker image 正在设置 Chrome 53ChromeDriver 2.30。可以试试53 版本看看有没有帮助?
  • 您是否在 Chrome 中打开了 chrome://version 以获取配置文件路径?似乎--user-data-dir 参数中使用的路径不正确。
  • @Renato 是正确的。 Chrome 将 /Default 附加到配置文件路径

标签: java google-chrome selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

找到了我自己问题的答案。当我从配置文件路径复制默认文件夹并将其移动到其他位置时,它起作用了。

    ChromeOptions options = new ChromeOptions();
    options.addArguments("user-data-dir=C:/Users/"+System.getProperty("user.name")+"/Desktop/");
    options.addArguments("--start-maximized");
    WebDriver driver = new ChromeDriver(options);
    driver.get("https://www.google.com");

【讨论】:

    【解决方案2】:

    如果您不想移动配置文件,可以使用下面的(将%Profile%更改为您要使用的配置文件):

    ChromeOptions options = new ChromeOptions();
    options.addArguments("--user-data-dir=C:\\Users\\"+System.getProperty("user.name")+"\\AppData\\Local\\Google\\Chrome\\User Data");
    options.addArguments("--profile-directory=%Profile%")
    options.addArguments("--start-maximized");
    WebDriver driver = new ChromeDriver(options);
    driver.get("https://www.google.com");
    

    【讨论】:

      【解决方案3】:

      试试这个:

      DesiredCapabilities capabilities = DesiredCapabilities.chrome();
      
      System.setProperty("webdriver.chrome.driver", "CHROME_DRIVER_PATH");        
      capabilities.setCapability("chrome.switches", Arrays.asList("--no-default-browser-check"));
      HashMap<String, String> chromePreferences = new HashMap<String, String>();
      chromePreferences.put("profile.password_manager_enabled", "false");
      capabilities.setCapability("chrome.prefs", chromePreferences);            
      
      ChromeOptions options = new ChromeOptions();
      options.setBinary("CHROME_BINARY_PATH");
      options.addArguments("--test-type");
      options.addArguments("--allow-running-insecure-content");
      
      capabilities.setCapability(ChromeOptions.CAPABILITY, options);
      WebDriver driver = ChromeDriver(capabilities);
      

      【讨论】:

      • options.addArguments("--user-data-dir=C:\\Users\\"+System.getProperty("user.name")+"\\AppData\\Local\\Google\\Chrome\\User Data\\");还是不行
      猜你喜欢
      • 2021-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-06
      • 1970-01-01
      相关资源
      最近更新 更多