当前位置: 首页 > 知识库问答 >
问题:

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

林英武
2023-03-14

我在10.0Safari中使用本机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。驱动程序Mac OS X系统属性设置为/usr/bin/safaridriver

以下适用于Safari:

            driver.manage().getCookies();

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

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

addCookie()的异常堆栈跟踪

< sup > DEBUG[main](DefaultNavigator.java:201)-捕获的异常:org . open QA . selenium . web driver exception:处理命令时出现未知的服务器端错误。(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:4毫秒

< sup >构建信息:版本:“3.0.1”,修订版:“1969d75”,

time:'2016-10-18 09:49:13-0700'System info: host:'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功能[{Application CacheEnabled=true, roatable=false,数据库启用=true, handlesAlerts=true, version=11602.3.12.0.1,清洁会话=true,平台=MAC, nativeEvents=true, locationContextEnable=false, webStorageEnable=true,浏览器名称=safari, javascriptEnable=true, cssSelectorsEnable=true}]会话ID: 7513DEE7-DB0F-4CBD-B21E-D760C69880DB

DEBUG[main]( ) - ###### 执行测试:testSignIn成功在DelegatingConstructorAccessorImpl.java:450(本机方法)在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)在org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:217)在org.junit.runners.BlockJUnit(1.runReflectiveCall)在BlockJUnit4ClassRunner.java:266(org.junit.internal.runners.model.ReflectiveCallable.run)在ReflectiveCallable.java:12(ErrorHandler.java:168)在BlockJUnit4ClassRunner.java:263(RemoteWebDriver.java:635)在org.openqa.selenium.remote.RemoteWebDriver$RemoteWebDriverOptions.addCookie(RemoteWebDriver.java:718)...在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)在AbstractTest.java:91(sun.reflect.NativeConstructorAccessorImpl.newInstance)在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)在java.lang.reflect.Constructor.newInstance4ClassRunnerConstructor.java:423(org.openqa.selenium.remote.ErrorHandler.createThrowable)在ErrorHandler.java:216(org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed)在组织(org.openqa.selenium.remote.RemoteWebDriver.execute)在组织(Junit. runner. BlockJUnit4ClassRunner. java: 78)在组织(Junit. runner. BlockJUnit4ClassRunner. runUNICEF(BlockJUnit4ClassRunner. java: 57)在组织(Junit. runner.家长跑步者3美元. run(家长跑步者. java: 290)在组织(Junit. runner.)家长跑步者1美元.时间表(家长跑步者. java: 71)(测试执行. java: 38)在org. eclipse. jdt. interal. jite. runner. Remote teTestRunner. runTest(Remote teTestRunner. java: 459)在org. eclipse. jdt. interal. unit. runner. Remote teTestRunner. runTest(Remote teTestRunner. java: 678)在org. eclipse. jdt. interal. jut. runner. Remote teTestRunner. run(Remote teTestRunner. java: 382)在org. eclipse. jdt. interal. java: 192)

共有1个答案

万开畅
2023-03-14

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

 类似资料:
  • 本文向大家介绍PHP 删除Cookie,包括了PHP 删除Cookie的使用技巧和注意事项,需要的朋友参考一下 示例 要删除Cookie,请将过期时间戳记设置为过去的时间。这将触发浏览器的删除机制: 删除Cookie时,请确保path和的domain参数setcookie()与您要删除的Cookie匹配,否则将创建一个立即过期的新Cookie。 $_COOKIE如果当前页面使用该值,则最好取消设置

  • 如果cookie的max-age属性的值为0,则表示删除该cookie。cookie机制没有提供删除方法,因此通过设置该cookie即时失效实现删除cookie的效果。失效的cookie会被浏览器从cookie文件或者内存中删除。如: function delCookie(name) { setCookie(name, "", 0); }

  • 问题内容: 当我想删除Cookie时,我尝试 我从firefox的cookie浏览器中看到cookie仍然存在。我如何才能真正删除Cookie? 问题答案: 你可以试试这个

  • 员工与部门之间的关联是多对多的双向关联。 我正在尝试在删除受雇者之前删除关联

  • 问题内容: 我使用文档中建议的代码设置cookie: 但是,如何删除它们?没有remove_cookie方法。我试过了: 但是事实证明request.cookies对象是不可变的。我该怎么办? 问题答案: 没有用于删除Cookie的HTTP标头。传统上,你只是将cookie设置为具有过期日期的虚拟值,因此它会立即过期。 这会将会话ID cookie设置为一个空字符串,该字符串在unixtime到期

  • 问题内容: 如何删除名称为特定的Cookie ? 不应以下内容: 然后: 杀死饼干? 问题答案: 您应该定义cookie所在的路径,以确保删除正确的cookie。 如果未指定路径,浏览器将相对于您当前所在的页面设置一个cookie,因此,如果您在其他页面上删除该cookie时,另一个cookie继续存在。 根据@Evan Morrison的评论进行编辑。 请注意,在某些情况下,要标识正确的cook