Est-il possible de tester automatiquement le navigateur avec Selenium / WebdriverIO en utilisant Chrome en mode sans affichage?
Soi-disant Chrome --headless est une chose maintenant, mais je ne parviens pas à faire fonctionner leur exemple. J'espérais que le sélénium avait une option pour cela?
J'initialise WebdriverIO comme ceci:
const WebdriverIO = require('webdriverio');
let driver = WebdriverIO.remote({
desiredCapabilities: {
browserName: browser, // "chrome" or "firefox"
},
});
Et je commence Selenium en utilisant Selenium-standalone :
Selenium-standalone start > /dev/null 2>&1
Je n'ai pas encore essayé moi-même, mais vous pouvez télécharger --headless build à partir de cette image de menu fixe:
https://hub.docker.com/r/justinribeiro/chrome-headless/
ou le construire vous-même (cela prend quelques heures et vous avez besoin de beaucoup de RAM :)) http://www.zackarychapple.guru/chrome/2016/08/24/chrome-headless .html
Ensuite, vous devriez pouvoir simplement spécifier --headless dans votre script de lancement de chrome et utiliser chromedriver, conformément à cette question dans la liste de diffusion dev: https://groups.google.com/a/chromium.org/forum/#! topic/headless-dev/aAGFq8n_s6g
Vous pouvez utiliser HtmlUnitDriver () pour réaliser un test de navigateur sans interface graphique avec Selenium.
driver = new HtmlUnitDriver();
driver.get(URL);
String title = driver.getTitle();
System.out.println(title);
Mais je comprends que vous voulez un test spécifique du navigateur sans navigateur avec chrome, ..... laissez-moi essayer de vous répondre.
Outre le pilote HTML Unit, une autre approche permettant d’utiliser webdriver en mode non graphique consiste à utiliser le tampon de trame XVirtual pour Linux. En l'utilisant, vous pouvez utiliser à la fois les pilotes Chrome et Firefox. La solution complète, qui inclut Jenkins, le pilote Selenium Firefox et Blazemeter avec l’utilisation du tampon de trame XVirtual sous Linux, est décrite ici: Exécution sans tête des tests Selenium dans Jenkins . Bien sûr, vous pouvez utiliser le pilote Chrome à la place.