如何使用Java Selenium启用Silverlight插件?

时间:2015-03-12 16:29:11

标签: java silverlight selenium webbrowser-control automated-tests

我正在使用Silverlight的网站上运行java中的selenium测试:

一个测试示例是:

   public double getVideoBitrate()
   {
      return Double.valueOf(executeBridgeCommand("Diagnostics.CurrentBitrate").toString());
   }

我遇到的问题是,当在Jenkins奴隶上运行时,我无法保证silverlight处于活动状态,因此我的测试失败了。如何在浏览器中激活它? 这些命令(至少对于Firefox)看起来好像是我正在寻找的,但我不知道要设置什么偏好或如何为silverlight找到它们。

FirefoxProfile firefoxProfile = new FirefoxProfile();
firefoxProfile.setPreference("browser.download.folderList",2);
firefoxProfile.setPreference("pdfjs.disabled", true);
firefoxProfile.setPreference("pdfjs.firstRun", false);

(复制自 Selenium disable plugins in firefox profile

我还需要确保Silverlight在Chrome和IE中也处于活动状态。

3 个答案:

答案 0 :(得分:0)

如果您只是验证Silverlight已启用,那么您应该可以执行此操作:

WebElement silverlightElement = driver.findElement(By.cssSelector("object[type='application/x-silverlight-2']");

然后用它做你想做的事。

但是,请注意,这是您可以使用Selenium的程度。您可以验证HTML中显示的属性,但是Object内部的任何内容都不在Selenium的Scope中。 Selenium无法自动化嵌入的任何内容,如PDF,Flash,Java Applet,Silverlight等。

答案 1 :(得分:0)

有一个silverlight selenium插件,可以获取视频率等信息,也可以进行其他操作。

答案 2 :(得分:0)

好吧,由于微软不再支持Silverlight,我的公司开始使用Flashplayer,所以这个问题现在没有用了。