2

Seleniumフレームワークを最新バージョンにアップグレードしました。コードの実行中に、私は次の例外を受け取る:org.openqa.selenium.InvalidArgumentException:DesiredCapabilitiesを使用した機能が無効です

例外:

org.openqa.selenium.InvalidArgumentException: 
Invalid capabilities in alwaysMatch: unhandledPromptBehavior is type boolean instead of string 

詳細:

  • セレン:3.7.1。
  • IE:3.7.0(32ビットドライバ)。
  • java.version: '1.8.0_144'。

さらに新しいバージョンが表示されるdriver = new InternetExplorerDriver(capabilities);は推奨されていません。私は関数の中でブラウザの機能を個別に設定し、それをDriverのパラメータとして渡しています。

この問題を解決するにはどうすればよいですか?

コードスニペット:

driver = new InternetExplorerDriver(capabilities); 
+0

あなたのコードの試行錯誤と、あなたは「設定能力」を通過していますか? – DebanjanB

+0

ブラウザを設定する前に、関数desiredCapabilities(browser)を呼び出します。以下はブラウザを設定するための機能です – Priya

+0

'browser'と' desiredCapabilities'の定義は何ですか? – DebanjanB

答えて

2

まあ、病棟にv3.7からSelenium実装これ以上のパラメータとしてDesiredCapabilitiesタイプのオブジェクトを受け付けます

desiredCapabilities(browser); 

IE Capabilities Setting:- 
capabilities = new DesiredCapabilities().internetExplorer(); 
capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true); 
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); 
capabilities.setCapability(CapabilityType.SUPPORTS_ALERTS, true); 
capabilities.setCapability(InternetExplorerDriver.UNEXPECTED_ALERT_BEHAVIOR, true); 
capabilities.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true); 
capabilities.setCapability(InternetExplorerDriver.ENABLE_ELEMENT_CACHE_CLEANUP, true); 
capabilities.setCapability("nativeEvents", false); 
capabilities.setCapability("requireWindowFocus", false); 
capabilities.setJavascriptEnabled(true); 
capabilities.setCapability("ignoreProtectedModeSettings", true); 
System.setProperty("webdriver.ie.driver", ieExe.getAbsolutePath()); 

は、その後、私は私のドライバを呼び出しますWeb Browserインスタンスを初期化するのではなく、厳密に型指定されたOptions cレーラスが好ましい。だから、InternetExplorerOptions Classオブジェクトを使用MutableCapabilitiesからmerge引数を使用し、パラメータとして渡す必要があります。あなたのコードブロックは次のようになります:

System.setProperty("webdriver.ie.driver", "C:\\Utility\\BrowserDrivers\\IEDriverServer.exe"); 
DesiredCapabilities capabilities = new DesiredCapabilities(); 
capabilities.setCapability("INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS", true); 
capabilities.setCapability("ACCEPT_SSL_CERTS", true); 
capabilities.setCapability("SUPPORTS_ALERTS", true); 
capabilities.setCapability("UNEXPECTED_ALERT_BEHAVIOR", true); 
capabilities.setCapability("IE_ENSURE_CLEAN_SESSION", true); 
capabilities.setCapability("ENABLE_ELEMENT_CACHE_CLEANUP", true); 
capabilities.setCapability("nativeEvents", false); 
capabilities.setCapability("requireWindowFocus", false); 
capabilities.setJavascriptEnabled(true); 
capabilities.setCapability("ignoreProtectedModeSettings", true); 
InternetExplorerOptions opt = new InternetExplorerOptions(); 
opt.merge(capabilities); 
WebDriver driver = new InternetExplorerDriver(opt); 
+0

ありがとう。実装しようとしてみましょう – Priya

+0

機能の問題が解決しました。しかし、私はまだorg.openqa.selenium.InvalidArgumentExceptionというエラーに直面しています。 alwaysMatchの無効な機能:unhandledPromptBehaviorは文字列ではなくブール型です – Priya

+0

正確なエラーInvalidArgumentException:新しい問題を発生させることができますか?alwaysMatch:unhandledPromptBehavior' 'desiredCapabilities(ブラウザ);' – DebanjanB

関連する問題