我正在使用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中也处于活动状态。
答案 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,所以这个问题现在没有用了。