it-swarm.com.de

Mit Selenium 3.8.1 und Geckotreiber 0.19.0 wurde kein entsprechender Satz von Funktionen gefunden

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

Wenn ich diesen Code auf Eclipse luna ausführen, ist ein Fehler aufgetreten: Ausnahme im Thread "main" org.openqa.Selenium.SessionNotCreatedException: Es wurde kein übereinstimmender Satz von Funktionen gefunden

5
shivam
new FirefoxDriver(DesiredCapabilities caps); 

ist veraltet, verwenden

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

und du bist gut zu gehen

9

Sie sollten Funktionen für Firefox hinzufügen. Bitte ändern Sie Ihren Code wie folgt

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

Wenn Ihr Fenster windows_nt ist, setzen Sie windows_nt anstelle von windows.

1
Mahmud Riad

SessionNotCreatedException

SessionNotCreatedExceptionerweitertWebDriverExceptionund ist eineRuntimeException, die angibt, dass eine Sitzung nicht erstellt werden konnte.

Mögliche Ursachen :

Die möglichen Ursachen dafür, dass eine neue Sitzung nicht erstellt wird, sind folgende:

  • Kompatibilitätsprobleme zwischenJDK,Selenium,WebDriverundWeb BrowserVersionen.
  • Zugriff auf die gleiche Portnummer über GeckoDriver oder Marionette über die neue Sitzung, deren vorherige Sitzung noch nicht freigegeben wurde.
  • Fehlender Zugang zu CPU
  • Mangel an Physical Memory
  • Mangel an Swap Memory
  • Mangel an Disc Cache
  • Mangel an Network Bandwidth
  • Anwesenheit von OS chores im System.

Code-Block:

Ich sehe kein Codierungsproblem als solches in Ihrem Codeblock.

Lösung:

Die einfache Lösung wäre wie folgt:

  • Verwenden Sie immer die neueste Version von JDK (Java SE 9.0.1), Selenium-Java-Client (v3.8.1), WebDriver-Variante (GeckoDriver v0.19.1) und Webbrowser (Firefox Quantum Browser).
  • Wenn die Basisversion des Webbrowsers zu alt ist, sollten Sie den Browser über das Revo-Deinstallationsprogramm deinstallieren und eine kürzlich veröffentlichte GA - Version des Firefox-Browsers installieren.
  • Verwenden Sie in der tearDown () -Methode immer quit (), damit sowohl der Web-Treiber als auch der Web-Client ordnungsgemäß zerstört werden.
  • Bereinigen Sie den Project Workspace vor und nach der Ausführung Ihrer Test Suite von Ihrer IDE.
  • Löschen Sie den Browser-Cache vor und nach der Ausführung Ihrer Tests.
  • Verwenden Sie regelmäßig das CCleaner-Tool, um die Aufgaben des Betriebssystems zu löschen.
  • Führen Sie Ihren Test aus.
0
DebanjanB

Eine andere mögliche Ursache ist die veraltete Firefox-Version. 

Ich habe die Version aktualisiert und es funktioniert gut! 

Ich konnte den Browser nur mit der Einstellung options.setCapability("marionette", true); öffnen, dann habe ich im geöffneten Fenster ein Upgrade über den "About Firefox" -Dialog durchgeführt. Dann müssen Sie die Zeile über marionette entfernen.

Wahrscheinlich hatte ich nur mit marionette gearbeitet, während wir versuchten, es mit geckodriver zu verwenden, das ein anderes Protokoll hat. Wer mehr weiß als ich, kann das bestätigen oder dementieren!

0
caesarsol