2017-09-15 91 views
0

对不起我的英文不好。 我有一个关于webdriver + chrome +扩展的问题。 我需要测试100个网站的加载时间,有或没有像adblock这样的很多扩展程序。 我用Java编程。 的问题是: 当我添加扩展名白衣的.crx,与此:Selenium Webdriver Java:使用扩展和我的配置启动Chrome浏览器

ChromeOptions options = new ChromeOptions(); 
options.addExtensions(new File("/path/to/extension.crx")); 
DesiredCapabilities capabilities = new DesiredCapabilities(); 
capabilities.setCapability(ChromeOptions.CAPABILITY, options); 
ChromeDriver driver = new ChromeDriver(capabilities); 

铬启动了“清除” Adblock的配置。

虽然我需要最大的限制配置,但我手动配置在我的chrome中。

如何用我的配置启动带扩展名的新的chrome实例?

+0

扩展使用本地存储来保存设置。您可以通过硒恢复本地存储,或者在扩展允许的情况下通过URL设置设置,或者使用预期的设置重新打包扩展,或者使用已经安装扩展的现有配置文件。 –

回答

0

您可以使用整个配置文件启动Chrome。下面的例子是针对windows的。你需要把你自己的用户名放在路径中。在Linux中,只需更改用户数据的路径。

ChromeOptions options = new ChromeOptions(); 
options.addArguments("user-data-dir=C:/Users/YOUR_USERNAME/AppData/Local/Google/Chrome/User Data"); 
DesiredCapabilities capabilities = new DesiredCapabilities(); 
capabilities.setCapability(ChromeOptions.CAPABILITY, options); 
ChromeDriver driver = new ChromeDriver(capabilities); 
+0

谢谢!!! 所以例如,如果我使用这个指令,我发现在新的铬instace所有我的扩展?惠普配置? –

+0

是的,没错。 –

+0

好!现在我测试你的解决方案! 有扩展,但我有一个问题! 当浏览器启动时,它会加载主页,并加载谷歌小框和谷歌搜索(默认Chrome主页!)! 小盒子的加载导致总加载时间! 所以我需要一个解决方案,允许我执行一个空白但带扩展名的chrome主页。 –

1

这是我的新代码:

System.setProperty("webdriver.chrome.driver", "C:\\Users\\P\\Desktop\\progetto tesi\\chromedriver.exe"); 
      ChromeOptions options = new ChromeOptions(); 
      options.addArguments("user-data-dir=C:\\Users\\P\\AppData\\Local\\Google\\Chrome\\User Data"); 
      DesiredCapabilities capabilities = new DesiredCapabilities(); 
      capabilities.setCapability(ChromeOptions.CAPABILITY, options); 

      driver = new ChromeDriver(capabilities); 
      driver.manage().deleteAllCookies(); 
      driver.manage().window().maximize(); 
      driver.manage().timeouts().implicitlyWait(1000, TimeUnit.SECONDS);// Aspetta 30 secondi prima di catturare un eccezione. 
      driver.manage().timeouts().pageLoadTimeout(1000, TimeUnit.SECONDS); 
相关问题