Dav*_*d.M 16 java testing cookies selenium-webdriver microsoft-edge
我正在尝试在使用webdriver打开它之前添加cookie到链接,但它一直给我这个错误:
org.openqa.selenium.UnableToSetCookieException:无法设置cookie(警告:服务器未提供任何堆栈跟踪信息)
请在下面找到我的代码:
System.setProperty("webdriver.edge.driver","C:\\Program Files\\Latest Webdriver\\MicrosoftWebDrive.exe" );
EdgeDriver = new EdgeDriver();
Thread.sleep(2000);
Cookie cookie = new Cookie("Testing", "11111");
EdgeDriver.manage().addCookie(cookie);
EdgeDriver.get("https://www.google.ca/?gws_rd=ssl"); // The link is an example
Run Code Online (Sandbox Code Playgroud)
请帮助解决相关问题.
Jef*_*ffC 21
您在导航到网站之前创建了cookie.如果您尝试在域www.example.com上创建cookie,那么您可能希望导航到该域上的某个页面,创建cookie,然后开始测试.
从我前面的阅读中,最好的方法是导航到您知道在域上不存在的某个页面,例如www.example.com/this404page,然后创建cookie.它应该加载更快,因为它是一个错误页面,不应包含太多内容.在404页面上创建cookie后,开始测试.
您无法执行此操作,因为WebDriver规范要求您将浏览器登陆到您尝试为其设置Cookie的域.
解决方法和提到的是在设置cookie之前转到页面.但这会导致一些问题:
不幸的是,它阻止了两个关键用例:
webdriver规范显然需要考虑到这一点.我在这里开了一个问题:
https://github.com/w3c/webdriver/issues/1238
给它一些投票.所有浏览器都应该开始有办法处理这个问题.
首先导航到URL,然后尝试添加cookie,请尝试以下代码:
System.setProperty("webdriver.edge.driver","C:\\Program Files\\Latest Webdriver\\MicrosoftWebDrive.exe" );
EdgeDriver = new EdgeDriver();
Thread.sleep(2000);
Cookie cookie = new Cookie("Testing", "11111");
EdgeDriver.manage().addCookie(cookie);
EdgeDriver.get("https://www.google.ca/?gws_rd=ssl"); // The link is an example
Run Code Online (Sandbox Code Playgroud)
用以下代码替换您的代码:
System.setProperty("webdriver.edge.driver","C:\\Program Files\\Latest Webdriver\\MicrosoftWebDrive.exe" );
EdgeDriver = new EdgeDriver();
Thread.sleep(2000);
EdgeDriver.get("https://www.google.ca/?gws_rd=ssl"); // The link is an example
Cookie cookie = new Cookie("Testing", "11111");
EdgeDriver.manage().addCookie(cookie);
Run Code Online (Sandbox Code Playgroud)
小智 2
在导航到域之前添加 cookie 称为无域 cookie,我认为这是不可能的。
我还没有找到在 url 之前删除 cookie 的方法,但我认为下面的场景可能会帮助你 -
归档时间: |
|
查看次数: |
23488 次 |
最近记录: |