如何透過Selenium WebDriver以程式設計方式配置Chrome擴充套件程式?
我們可以透過Selenium webdriver以程式設計方式配置Chrome擴充套件程式。當我們手動開啟瀏覽器並使用它時,Chrome瀏覽器可以擁有多個擴充套件程式。
但是,當Chrome瀏覽器透過Selenium webdriver開啟時,本地瀏覽器可用的那些擴充套件程式將不存在。要配置擴充套件程式,我們必須獲得擴充套件程式的.crx擴充套件檔案。
然後,我們必須將該擴充套件程式新增到由Selenium webdriver啟動的瀏覽器中。要獲取瀏覽器可用的所有擴充套件程式,請輸入
chrome://extensions 在瀏覽器中。
例如,要新增Momentum擴充套件程式,請訪問連結:
https://chrome.google.com/webstore/category/extensions並在搜尋框中輸入Momentum。搜尋結果顯示後,點選相關選項。
點選**Momentum**擴充套件程式後,將顯示擴充套件程式的詳細資訊。複製下圖中突出顯示的擴充套件程式URL。
現在,導航到連結:https://chrome−extension−downloader.com/並將我們複製的URL貼上到**下載擴充套件程式**欄位中。
擴充套件程式的.crx檔案將下載到我們的系統中。然後,我們應該將其儲存到所需位置。
要將此擴充套件程式新增到Chrome瀏覽器(一旦由Selenium webdriver啟動),我們必須使用**ChromeOptions**類。我們將建立此類的物件,並在其上應用**addExtensions**方法。
要新增的擴充套件程式的.crx檔案的路徑作為引數傳遞給該方法。然後使用**DesiredCapabilities**類來設定此瀏覽器功能。
我們將在DesiredCapabilities的物件上應用**setCapability**方法,並將**ChromeOptions.CAPABILITY**和**ChromeOptions**類的物件作為引數傳遞給該方法。最後,DesiredCapabilities的物件作為引數傳遞給webdriver物件。
示例
import org.openqa.selenium.WebDriver; import org.openqa.selenium.Capabilities; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.remote.CapabilityType; import org.openqa.selenium.remote.DesiredCapabilities; import java.io.File; public class AddExtensns{ public static void main(String[] args) { System.setProperty("webdriver.chrome.driver", "C:\Users\ghs6kor\Desktop\Java\chromedriver.exe"); //ChromeOptions object ChromeOptions opt= new ChromeOptions(); //set path of .crx file of extension opt.addExtensions(new File("C:\Users\Momentum_v0.92.2.crx")); //DesiredCapabilities object DesiredCapabilities c = DesiredCapabilities.chrome(); // set ChromeOptions capability c.setCapability(ChromeOptions.CAPABILITY, opt); // pass capability to driver WebDriver driver = new ChromeDriver(c); driver.get("https://tutorialspoint.tw/index.htm"); } }