我正在写一个网页应用程序,有一个浏览器插件组件,为firefox和chrome。我当前的测试系统使用了一系列通过Selenium IDE创建的Selenium测试。
有没有可能让selenium安装、激活和删除firefox和chrome的浏览器插件(也可能是其他浏览器)?
我认为最大的担忧是安装/启用浏览器插件需要重新启动浏览器,我不确定这是否可以通过selenium关闭。
通过访问内部站点链接即可轻松获取插件,该链接指向可检测您的浏览器的php脚本。
发布于 2013-06-15 05:56:33
答案是是,Selenium 2支持(远程)安装浏览器扩展。
Chrome和火狐WebDriver支持远程安装扩展。以下是Chrome和Firefox的示例代码:
铬
File file = new File("extension.crx"); // zip files are also accepted
ChromeOptions options = new ChromeOptions();
options.addExtensions(file);
// Option 1: Locally.
WebDriver driver = new ChromeDriver(options);
// Option 2: Remotely
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);Firefox
File file = new File("extension.xpi");
FirefoxProfile firefoxProfile = new FirefoxProfile();
firefoxProfile.addExtension(file);
// Option 1: Locally
WebDriver driver = new FirefoxDriver(firefoxProfile);
// Option 2: Remotely
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability(FirefoxDriver.PROFILE, firefoxProfile);
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);我还实现了Opera和Safari扩展的自动安装,它们已经合并到上游:
https://github.com/operasoftware/operadriver/pull/93
:
歌剧
此接口与FirefoxDriver类似。
File file = new File("extension.oex"); // Must end with ".oex"
OperaProfile operaProfile = new OperaProfile();
operaProfile.addExtension(file);
// Option 1: Locally
WebDriver driver = new OperaDriver(operaProfile);
// Option 2: Remotely
DesiredCapabilities capabilities = DesiredCapabilities.opera();
capabilities.setCapability("opera.profile", operaProfile);
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);Safari
此接口与ChromeDriver类似。
File file = new File("extension.safariextz");
SafariOptions options = new SafariOptions();
options.addExtensions(file);
// Option 1: Locally.
WebDriver driver = new SafariDriver(options);
// Option 2: Remotely
DesiredCapabilities capabilities = DesiredCapabilities.safari();
capabilities.setCapability(SafariOptions.CAPABILITY, options);
WebDriver driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), capabilities);Internet Explorer
祝好运。
发布于 2013-02-28 22:45:21
简短的回答是:不
安装浏览器扩展超出了Selenium的处理范围。
在Chrome中,当你想要添加插件或应用程序时,它会显示一个无法使用Selenium“点击”的模式窗口。Chrome不需要重启。
Firefox有同样的行为来提示获取扩展权限。
你可以尝试一些驻留在浏览器之外的东西来做你想做的事情。Sikuli也许能做到这一点。
https://stackoverflow.com/questions/15005833
复制相似问题