无需访问Selenum中的页面即可设置Cookie

时间:2017-10-12 23:28:32

标签: java selenium cookies geckodriver

任何人都可以向我解释如何使用带有selenium的插件为gecko驱动程序设置未访问过的域的cookie?我一直试图设置一个cookie来防止看到登录页面,但cookie的域名是重定向的,所以我不能通过访问它来设置它,也无法弄清楚如何去做。

我试过这个,但看起来我无法在selenium中指定这个,因为我无法访问此页面。

Cookie cookie11 = new Cookie("SID",
                  "cookievalue",
                  ".google.com",
                  "/",
                  expiry1,
                  false,
                  false); 

找到一个名为Cookies Export / import的插件,我试图找出是否可以用来导入cookie。

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

如果您希望使用指定的扩展程序来执行此操作,我建议您在How do you use a firefox plugin within a selenium webdriver program written in java?上查看SO答案,您应该从那里开始。

但是,我相信您可以使用addCookie()方法在不使用扩展程序的情况下实现此目的。

WebDriver driver = new FirefoxDriver();

Cookie cookie = new Cookie("SID",
              "cookievalue",
              ".example.com",
              "/",
              expiry1,
              false,
              false); 

driver.manage().addCookie(cookie);
driver.get("http://www.example.com/login");

假设您的Cookie详细信息正确无误,您应该可以通过登录重定向。

另见: WebDriver – How to Restore Cookies in New Browser Window

答案 1 :(得分:1)

你做不到。见https://w3c.github.io/webdriver/webdriver-spec.html#add-cookie

我使用规范https://github.com/w3c/webdriver/issues/1238

打开了此问题

如果您想通过此问题,则需要重新构建没有这些验证的浏览器:

以下是对FireFox(木偶)进行的更改: https://gist.github.com/nddipiazza/1c8cc5ec8dd804f735f772c038483401