Есть ли способ проверить, открыта ли веб-консоль (например, FireBug) на языке Java?

Я создаю автоматизированные тестовые случаи с Selenium WebDriver 2. Мой код настроен так, что FireBug автоматически открывается, когда Selenium WebDriver открывает FireFox. Через несколько секунд я прошу 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();

Я могу найти способы сделать это в javascript, используя window.console. Есть ли способ сделать что-то подобное в Java?

1 ответ

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.

Ответ - Синдре Сорхус и был взят отсюда! Узнайте, открыта ли консоль Chrome

Другие вопросы по тегам