2017-09-15 68 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); 
相關問題