1

我在 Safari 10.0 中使用本机 SafariDriver 添加和删除 cookie 时遇到问题:WebDriverException抛出了一个泛型,我正在寻找修复或解决方法。

这发生在以下组件中:

  • Mac OS X 10.11.6 (El Capitan)
  • 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

webdriver.safari.driverMac OS X系统属性设置为/usr/bin/safaridriver

以下适用于 Safari:

            driver.manage().getCookies();

以下在 Safari 中失败,但在 Chrome 中有效

            driver.manage().addCookie(cookie);
            driver.manage().deleteAllCookies();

异常堆栈跟踪addCookie()

调试 [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 Capabilities [{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

调试 [main] (AbstractTest.java:91) - ###### 执行测试:sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 处的 testSignInSuccess sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:216)在 org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:635) 在 org.openqa.selenium.remote 的 org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:168)。RemoteWebDriver$RemoteWebDriverOptions.addCookie(RemoteWebDriver.java:718) ...在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:217) at org.junit.runners.BlockJUnit4ClassRunner$1 .runReflectiveCall(BlockJUnit4ClassRunner.java:266) 在 org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 在 org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:263) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) at org .junit.runners.ParentRunner$3.run(ParentRunner.java:290) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) at 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.run(ParentRunner. java:363) 在 org.eclipse.jdt.internal.junit4.runner。JUnit4TestReference.run(JUnit4TestReference.java:86) 在 org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) 在 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.run(RemoteTestRunner.java:382)在org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)在org .eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)459)在org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)在org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:678)在org .eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)

4

1 回答 1

0

这是 safaridriver 中的一个已知问题。它已在 Safari 11 中修复。

于 2017-08-10T19:40:35.553 回答