使用Safari 10/Selenium 3.0.1删除cookie时出现异常



我在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或更高版本。我已经确保Selenium3.x正在被使用,并且Selenium2.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功能[{applicationCacheEnabled=true,rotable=false,databaseEnabled=true,handlesAlerts=true,版本=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在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessor Impl.java:62)在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessor Impl.java:45)位于java.lang.reflect.Constructure.newInstance(Constructor.java:423)网址:org.openqa.selene.remote.ErrorHandler.createThrowable(ErrorHandler.java:216)网址:org.openqa.selene.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:168)网址:org.openqa.selene.remote.RemoteWebDriver.exexecute(RemoteWebDriver.java:635)网址:org.openqa.selene.remote.RemoteWebDriver$RemoteWebDriverOptions.addCookie(RemoteWebDriver.java:718)。。。在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessor Impl.java:62)在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessor Impl.java:45)位于java.lang.reflect.Constructure.newInstance(Constructor.java:423)网址:org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:217)网址: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)网址: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$1schedule(ParentRunner.java:71)网址:org.junit.runners.ParentRunner.runChildren(ParentRunnr.java:288)网址:org.junit.runners.ParentRunner.access$000(ParentRunner:58)网址:org.junit.runners.ParentRunner$2.eevaluate(ParentRunner.java:268)网址:org.junit.runners.ParentRunner.run(ParentRunner:363)网址:org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TtestReference.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)

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

最新更新