首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Selenium测试浏览器插件

使用Selenium测试浏览器插件
EN

Stack Overflow用户
提问于 2013-02-21 23:21:09
回答 2查看 11.9K关注 0票数 17

我正在写一个网页应用程序,有一个浏览器插件组件,为firefox和chrome。我当前的测试系统使用了一系列通过Selenium IDE创建的Selenium测试。

有没有可能让selenium安装、激活和删除firefox和chrome的浏览器插件(也可能是其他浏览器)?

我认为最大的担忧是安装/启用浏览器插件需要重新启动浏览器,我不确定这是否可以通过selenium关闭。

通过访问内部站点链接即可轻松获取插件,该链接指向可检测您的浏览器的php脚本。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-15 05:56:33

答案是,Selenium 2支持(远程)安装浏览器扩展。

Chrome和火狐WebDriver支持远程安装扩展。以下是Chrome和Firefox的示例代码:

代码语言:javascript
复制
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

代码语言:javascript
复制
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

  • OperaDriver

歌剧

此接口与FirefoxDriver类似。

代码语言:javascript
复制
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类似。

代码语言:javascript
复制
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

祝好运。

票数 40
EN

Stack Overflow用户

发布于 2013-02-28 22:45:21

简短的回答是:不

安装浏览器扩展超出了Selenium的处理范围。

在Chrome中,当你想要添加插件或应用程序时,它会显示一个无法使用Selenium“点击”的模式窗口。Chrome不需要重启。

Firefox有同样的行为来提示获取扩展权限。

你可以尝试一些驻留在浏览器之外的东西来做你想做的事情。Sikuli也许能做到这一点。

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15005833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档