有没有办法检查Web控制台(例如FireBug)是否以java语言打开?

时间:2017-03-20 14:30:07

标签: java selenium firebug web-console

我正在使用Selenium WebDriver 2创建自动化测试用例。我的代码已设置好,以便在Selenium WebDriver打开FireFox时自动打开FireBug。几秒钟后,我要求Selenium再次关闭它。出于某种原因,如果我不这样做,有时FireBug将在稍后阶段无法使用。

我的问题: 当我使用TestNG套件运行我的测试套件时,一些测试用例最终会打开FireBug但不会再次关闭它。我的猜测是,这是因为现有的浏览器窗口已经打开。然后,“关闭FireBug代码”被误用来打开FireBug而不是关闭它。

出于这个原因,我想检查FireBug是否打开,如果是,我想关闭它。

开场代码:

String firebugPath = TO_Constant.fireBug();
FirefoxProfile profile = new FirefoxProfile();       
profile.addExtension(new File(firebugPath));
profile.setPreference("extensions.firebug.showFirstRunPage", false);
profile.setPreference("extensions.firebug.allPagesActivation", "on");
driver = new FirefoxDriver(profile);

关闭FireBug的代码:

Actions action = new Actions(driver);
action.sendKeys(Keys.F12).build().perform();

我可以使用window.console找到在javascript中执行此操作的方法。有没有办法在java中做类似的事情?

1 个答案:

答案 0 :(得分:0)

console.log('is DevTools open?', window.devtools.open);

您还可以收听活动:

window.addEventListener('devtoolschange', function (e) {
    console.log('is DevTools open?', e.detail.open);
});

当DevTools未对接时,它不起作用。但是,适用于Chrome / Safari / Firefox DevTools和Firebug。

答案是Sindre Sorhus,已经从这里开始了! Find out whether Chrome console is open