如何通过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.com/index.htm"); } }