我设置了一个selenium服务器,可以远程在ubuntu机器上运行。我的测试用Java编写,看起来像这样:
(...)
// setup the WebDrive
DesiredCapabilities dc = DesiredCapabilities.firefox();
dc.setCapability(FirefoxDriver.PROFILE, setupBrowser());
mDriver = new RemoteWebDriver(new URL("http://MY-SERVER-IP:4444/wd/hub"), dc);
(...)
private FirefoxProfile setupBrowser() {
FirefoxProfile fp = new FirefoxProfile();
fp.setAcceptUntrustedCertificates(true);
fp.setAssumeUntrustedCertificateIssuer(false);
fp.setPreference("browser.download.folderList",2);//browser dir
fp.setPreference("browser.download.dir", mExtractsDir);
fp.setPreference("browser.helperApps.neverAsk.saveToDisk","text/plain");
fp.setPreference("browser.helperApps.neverAsk.openFile","text/plain");
fp.setPreference("plugin.default.state", 2);
fp.setPreference("plugin.state.java", 2);
fp.setPreference("security.enable_java", true);
fp.setPreference("browser.helperApps.alwaysAsk.force", false);
fp.setPreference("browser.download.manager.alertOnEXEOpen", false);
fp.setPreference("browser.download.manager.focusWhenStarting", false);
fp.setPreference("browser.download.manager.useWindow", false);
fp.setPreference("browser.download.manager.showAlertOnComplete", false);
fp.setPreference("browser.download.manager.closeWhenDone", false);
return fp;
}
(...)
然后我在我的远程机器上运行了一个Selenium服务器,运行Ubuntu Linux的MY-SERVER-IP:4444执行:
$ Xvfb :0 -screen 0 1024x768x24 2>&1 >xvfb.log &
$ export DISPLAY=:0
$ nohup xvfb-run java -jar selenium-server-standalone-2.45.0.jar > selenium.log &
问题: 我的测试代码加载的网站需要java插件,但它没有加载。如何加载java插件?我知道它没有加载,因为我使用wdriver.get指向官方java测试网站并使用以下代码截取浏览器的屏幕截图,并且可以看到没有加载java测试插件:
Augmenter augmenter = new Augmenter();
TakesScreenshot ts = (TakesScreenshot) augmenter.augment(mDriver);
File srcFile = ts.getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(srcFile, new File("/tmp/firefoxstopped.png"));
问题: 如何在这种情况下在Firefox中启用java插件?
答案 0 :(得分:0)
请记住阅读有关嵌入HTML的Java Applet。 你能分享你的HTML代码吗? 你如何嵌入插件?
您可以使用navigator.plugins
像Java插件这样的NPAPI很快就会被弃用。
您可以在Java的支持下编译浏览器,如XULRunner o Firefox,并使用JavaScript加载jar文件。