Safari 10.0 でネイティブ SafariDriver を使用して Cookie を追加および削除する際に問題があります。ジェネリックWebDriverException
がスローされ、修正または回避策を探しています。
これは、次のコンポーネントで発生しています。
- Mac OS X 10.11.6 (エル キャピタン)
- Safari 10.0 [ SafariDriver のネイティブ実装を提供]
- セレン 3.0.1
次のドキュメントは、Safari 10 のネイティブ SafariDriver が Selenium SafariDriver拡張機能のインストールを必要としなくなったことを示していますが、Selenium 3.0 以降に依存しています。また、Selenium 3.x が使用されており、Selenium 2.x がシステムにないことを確認しました。
テスト中、ブラウザー ウィンドウにはオレンジ色の SmartSearch フィールドがあり、テスト ウィンドウをクリックすると以下の例外がスローされます。次のシステム プロパティにより、テスト フレームワークが正しいオーディオ ドライバーを使用していることはわかっています。スローされた例外は、Selenium のバージョンが 3.0.1 であることを示しています。
Mac webdriver.safari.driver
OS Xシステム プロパティが/usr/bin/safaridriver
以下は Safari で動作します。
driver.manage().getCookies();
以下は Safari では失敗しますが、Chrome では動作します
driver.manage().addCookie(cookie);
driver.manage().deleteAllCookies();
の例外スタック トレースaddCookie()
DEBUG [main] (DefaultNavigator.java:201) - キャッチされた例外: org.openqa.selenium.WebDriverException: コマンドの処理中に不明なサーバー側エラーが発生しました。(警告: サーバーはスタックトレース情報を提供しませんでした) コマンド期間またはタイムアウト: 4 ミリ秒
ビルド情報: バージョン: '3.0.1'、リビジョン: '1969d75'、
時間:'2016-10-18 09:49:13 -0700' システム情報: ホスト:'L-C02S61GDxxxx'、ip:'192.168.47.xxx、os.name:'Mac OS X'、os.arch: 「x86_64」、os.version:「10.11.6」、java.version:「1.8.0_112」
ドライバー情報: org.openqa.selenium.safari.SafariDriver 機能 [{applicationCacheEnabled=true, rotatable=false, databaseEnabled=true, handlesAlerts=true, version=11602.3.12.0.1, cleanSession=true, platform=MAC, nativeEvents=true 、locationContextEnabled=false、webStorageEnabled=true、browserName=safari、javascriptEnabled=true、cssSelectorsEnabled=true}] セッション ID: 7513DEE7-DB0F-4CBD-B21E-D760C69880DB
DEBUG [main] (AbstractTest.java:91) - ###### テストを実行中: testSignInSuccess at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:216) で java.lang.reflect.Constructor.newInstance(Constructor.java:423) で sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:168) で org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:635) で org.openqa.selenium.remote.RemoteWebDriver$RemoteWebDriverOptions.addCookie(RemoteWebDriver.java:718) ... sun.reflect.NativeConstructorAccessorImpl.newInstance0(ネイティブ メソッド) で(DelegatingConstructorAccessorImpl.java:45) で java.lang.reflect.Constructor.newInstance(Constructor.java:423) で org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:217) で org.junit.runners.BlockJUnit4ClassRunner$1 .runReflectiveCall(BlockJUnit4ClassRunner.java:266) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:263) org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) org .junit.runners.ParentRunner$3.run(ParentRunner.java:290) org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) ) org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) で org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) で org.junit.runners.ParentRunner.run(ParentRunner. java:363) org.eclipse.jdt.internal.junit4.runner.org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) の JUnit4TestReference.run(JUnit4TestReference.java:86) org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests( RemoteTestRunner.java:459) org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678) org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java: 382) org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main (RemoteTestRunner.java:192) で459) org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678) で org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) で org .eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)459) org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678) で org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) で org .eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)