web-dev-qa-db-ja.com

Selenium 3.8.1と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();

Eclipse lunaでこのコードを実行すると、エラーが発生します:スレッド「main」での例外org.openqa.Selenium.SessionNotCreatedException:一致する機能セットが見つかりません

7
shivam
new FirefoxDriver(DesiredCapabilities caps); 

非推奨です。使用

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

そしてあなたは行ってもいい

10

もう1つの考えられる原因は、古いバージョンのFirefoxです。

バージョンをアップグレードしましたが、正常に動作します!

options.setCapability("marionette", true);のみを設定してブラウザを開き、開いたウィンドウで[Firefoxについて]ダイアログを使用してアップグレードしました。次に、marionetteに関する行を削除する必要があります。

おそらく、私が持っていたのは、異なるプロトコルを持つmarionetteで使用しようとしているときにgeckodriverでしか動作しませんでした。私以上のことを知っている人は誰でも確認または拒否できます!

1
caesarsol

Firefoxの機能を追加する必要があります。次のようにコードを変更してください

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

ウィンドウがwindows_ntその後windows_ntの代わりにwindows

0
Mahmud Riad

SessionNotCreatedException

SessionNotCreatedExceptionWebDriverExceptionを拡張し、RuntimeExceptionはセッションができなかったことを示す作成されます。

考えられる原因 :

新しいセッションが作成されない場合の考えられる原因は次のとおりです。

  • JDKSeleniumWebDriverWeb Browserの間の互換性の問題バージョン。
  • 前のセッションがまだリリースしていない新しいセッションでGeckoDriverまたはMarionetteで同じポート番号にアクセスする。
  • CPUへのアクセスの欠如
  • Physical Memoryの欠如
  • Swap Memoryの欠如
  • Disc Cacheの欠如
  • Network Bandwidthの欠如
  • システム内にOS choresが存在します。

コードブロック:

コードブロックにコーディングの問題はありません。

解決策:

簡単な解決策は次のとおりです。

  • JDK(Java SE 9.0.1)、Selenium-Javaクライアント(v3.8.1)、WebDriverバリアント(GeckoDriver v0.19.1)、およびWebブラウザ(Firefox Quantum Browser)の最新リリースバージョンを常に使用してください。
  • Webブラウザのベースバージョンが古すぎる場合は、Revo Uninstallerを使用してブラウザをアンインストールし、最近リリースされたGA Firefoxブラウザのバージョンをインストールしてください。
  • 常にtearDown()メソッドでquit()を使用して、webdriverとwebclientの両方が適切に破棄されるようにします。
  • テストスイートを実行する前後のIDE)からプロジェクトワークスペースをクリーンアップします。
  • テストの実行前後にブラウザーキャッシュをクリアします。
  • CCleanerツールを定期的に使用して、OSの雑用を一掃してください。
  • テストを実行します。
0
DebanjanB