J'exécute des scénarios de test Selenium sur un serveur Ubuntu qui exécute essentiellement des cas de test à la fois sous firefox et chrome. Firefox démarre et les scénarios de test s'exécutent correctement, mais chrome lève une exception:
***** ci-dessous est l'extrait de stacktrace: *****
Démarrage de ChromeDriver (v2.8.240825) sur le port 21549
Support PAC désactivé car il n'y a pas d'implémentation système
Le test IntegrationTest.AdminUserelementscheck a échoué:
org.openqa.Selenium.WebDriverException: chrome inaccessible (Informations sur le pilote: chromedriver = 2.8.240825, platform = Linux 2.6.32-431.el6.x86_64 x86_64) (AVERTISSEMENT: le serveur n'a fourni aucune pile. information) [erreur] Durée ou expiration de la commande: 20,83 secondes
Salut ci-dessous est le petit extrait de mon code:
public class IntegrationTest {
private static final String configFile="test.properties";
private final String FIREFOX="firefox";
private final String CHROME="chrome";
private final String PHANTOMJS="phantomjs";
private final String BROWSERNAME="browser";
private static Properties props = new Properties();
public WebDriver webDriver;
private static Configuration additionalConfigurations;
@BeforeClass
public static void setUp() throws IOException, SQLException{
props.load(IntegrationTest.class.getResourceAsStream("/" + configFile));
}
@test
public void AdminUserelementscheck() throws SQLException, IOException {
String[] browsers = props.getProperty(BROWSERNAME).split(",");
System.out.println("Number of browsers specified in conf:"+props.getProperty(BROWSERNAME));
for(String browser:browsers){
System.out.println("Browser currently processing:"+browser);
if(browser.equalsIgnoreCase(FIREFOX))
webDriver = new FirefoxDriver();
else if(browser.equalsIgnoreCase(CHROME))
webDriver = new ChromeDriver();
else
webDriver = new PhantomJSDriver();
running(testServer(3333,fakeApplication()),webDriver, new Callback<TestBrowser>() {
********* LOGIN AND ASSERTION STATMENTS*******************
browser.quit()
}
});
}
En effet, Chrome utilise également des conteneurs Unix pour s'exécuter. Si vous voulez que cela fonctionne dans docker, transmettez la commande docker run
--privilégié
Sinon, vous pouvez démarrer Chrome avec
--no-sandbox
J'ai rencontré un problème similaire. J'exécute mes tests Selenium localement et une erreur "erreur WebDriver exception chrome non accessible" s'est soudainement manifestée.
Le problème était que j'avais déjà trop d'onglets dans mon navigateur Chrome classique. Après avoir été frustré, j'ai fermé quelques onglets et tout à coup cela a fonctionné. Je ne suis pas sûr qu'il y ait une certaine limite d'onglets, mais si quelqu'un rencontre le même problème, essayez-le.
Votre pilote chromé semble être vieux. Essayez de télécharger le dernier en date ci-dessous et signalez-le si de nouvelles erreurs se produisent.
http://chromedriver.storage.googleapis.com/index.html?path=2.14/
Assurez-vous également que la variable d'environnement PATH a le chemin d'accès à chromedriver.