2017-03-20 3 views
1

Je crée des scénarios de test automatisés avec Selenium WebDriver 2. Mon code est configuré pour que FireBug s'ouvre automatiquement lorsque Selenium WebDriver ouvre FireFox. Quelques secondes plus tard, je demande à Selenium de le refermer. Pour une raison quelconque, si je ne fais pas cela, parfois FireBug ne sera plus disponible à un stade ultérieur.Existe-t-il un moyen de vérifier si la console Web (par exemple FireBug) est ouverte en langage java?

Mon problème: Lorsque j'utilise la suite TestNG pour exécuter ma suite de tests, certains cas de test finissent par ouvrir FireBug mais ne le referment pas. Je suppose que cela est dû au fait que les fenêtres de navigateur existantes sont déjà ouvertes. Le "code FireBug de fermeture" est alors mal utilisé pour ouvrir FireBug au lieu de le fermer.

Pour cette raison, je voudrais faire un contrôle pour voir si FireBug est ouvert, et si oui, je voudrais le fermer.

Code d'ouverture:

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); 

Code pour fermer Firebug:

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

Je peux trouver des moyens de le faire en javascript, en utilisant window.console. Est-il possible de faire quelque chose de similaire en Java?

Répondre

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

Vous pouvez également écouter un événement:

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

Il ne fonctionne pas lorsque DevTools est désancrées. Cependant, fonctionne avec le Chrome/Safari/Firefox DevTools et Firebug.

La réponse est Sindre Sorhus et a été prise d'ici! Find out whether Chrome console is open