Есть ли способ проверить, открыта ли веб-консоль (например, 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