web-dev-qa-db-fra.com

Impossible de trouver un ensemble de capacités correspondant avec Selenium 3.8.1 et le pilote gecko 0.19.0

import org.openqa.Selenium.By;
import org.openqa.Selenium.WebDriver;
//import org.openqa.Selenium.chrome.ChromeDriver;
import org.openqa.Selenium.firefox.FirefoxDriver;

public class Webdriver {

    public static void main(String[] args) throws InterruptedException {
        // TODO Auto-generated method stub


        System.setProperty("webdriver.gecko.driver", "C:\\Selenium\\geckodriver.exe");
        WebDriver driver = new FirefoxDriver();
        //System.setProperty("webdriver.chrome.driver","C:\\Selenium\\chromedriver.exe");
        //WebDriver driver = new ChromeDriver();

        driver.get("https://maps.mapmyindia.com");

        Thread.sleep(2000);
        driver.findElement(By.id("auto")).sendKeys("TCS");

        Thread.sleep(2000);
        driver.findElement(By.id("auto_geo")).click();

Lorsque j'exécute ce code sur Eclipse luna, une erreur se produit: Exception dans le fil "principal" org.openqa.Selenium.SessionNotCreatedException: impossible de trouver un ensemble de capacités correspondant

5
shivam
new FirefoxDriver(DesiredCapabilities caps); 

est obsolète, utilisez

FirefoxOptions options = new FirefoxOptions();
options.setCapability("marionette", false);
WebDriver webDriver = new FirefoxDriver(options);

et vous êtes prêt à partir

9

Vous devriez ajouter des fonctionnalités pour Firefox. Veuillez modifier votre code comme suit

 System.setProperty("webdriver.gecko.driver", "C:\\Selenium\\geckodriver.exe");

 DesiredCapabilities capabilities = new DesiredCapabilities();

 capabilities = DesiredCapabilities.firefox();
 capabilities.setBrowserName("firefox");
 capabilities.setVersion("your firefox version");
 capabilities.setPlatform(Platform.WINDOWS);
 capabilities.setCapability("marionette", false);

 WebDriver driver = new FirefoxDriver(capabilities);

 driver.get("https://maps.mapmyindia.com");

Si votre fenêtre est windows_nt, mettez windows_nt au lieu de windows

1
Mahmud Riad

SessionNotCreatedException

SessionNotCreatedExceptionextendWebDriverExceptionet estRuntimeExceptionqui indique qu'une session n'a pas pu être créée.

Causes possibles :

Les causes possibles d’une nouvelle session non créée sont les suivantes:

  • Problèmes de compatibilité entreJDK,Selenium,WebDriveretWeb Browserversions.
  • Accès au même numéro de port par GeckoDriver ou Marionette par la nouvelle session sans que la session précédente ait été publiée.
  • Manque d'accès à CPU
  • Manque de Physical Memory
  • Manque de Swap Memory
  • Manque de Disc Cache
  • Manque de Network Bandwidth
  • Présence de OS chores dans le système.

Bloc de code:

Je ne vois aucun problème de codage dans votre bloc de code en tant que tel.

Solution :

La solution simple serait la suivante:

  • Utilisez toujours la dernière version publiée de JDK (Java SE 9.0.1), le client Selenium-Java (v3.8.1), la variante WebDriver (GeckoDriver v0.19.1) et le navigateur Web (navigateur Firefox Quantum).
  • Si la version de base du navigateur Web est trop ancienne, envisagez de le désinstaller via Revo Uninstaller et installez une version GA récemment publiée du navigateur Firefox.
  • Utilisez toujours quit () dans la méthode tearDown () pour que le pilote Web et le client Web soient correctement détruits.
  • Nettoyez l'espace de travail du projet de votre IDE avant et après l'exécution de votre suite de tests.
  • Effacez le cache du navigateur avant et après l'exécution de vos tests.
  • Utilisez régulièrement l'outil CCleaner pour effacer les tâches du système d'exploitation.
  • Exécutez votre test.
0
DebanjanB

Une autre cause possible est la version obsolète de Firefox. 

J'ai mis à jour la version et ça fonctionne bien! 

Je pouvais ouvrir le navigateur uniquement en paramétrant options.setCapability("marionette", true);, puis dans la fenêtre ouverte que je mettais à niveau via la boîte de dialogue "À propos de Firefox". Ensuite, vous devez supprimer la ligne à propos de marionette.

Celui que j’avais n’allait probablement que fonctionner avec marionette pendant que nous essayons de l’utiliser avec geckodriver, qui a un protocole différent. Quiconque en sait plus que moi peut confirmer ou nier!

0
caesarsol