我有一个关于selenium的代码来测试表单.但首先我转到另一个页面,然后重定向到我的页面.当我将cookie设置为新域时,我收到错误:
Exception in thread "main" org.openqa.selenium.InvalidCookieDomainException: You may only set cookies for the current domain
Run Code Online (Sandbox Code Playgroud)
我的代码:
//it is going to example.com and example redirect me to the "example.com" all cookie domains is "example.com"
driver.get("http://www.example.com?id=1");
Set<Cookie> cookies = driver.manage().getCookies();
Iterator<Cookie> itr = cookies.iterator();
while (itr.hasNext()){
Cookie c = itr.next();
System.out.println("Cookie Name: " + c.getName() + " --- " + "Cookie Domain: " + c.getDomain() + " --- " + "Cookie Value: " + c.getValue());
driver.manage().addCookie(c);
}
Run Code Online (Sandbox Code Playgroud)
我该如何管理?我必须为example.com获取/设置cookie
这就是我想要使用WebDriver执行的操作.
问题是当我关闭驱动程序并重新打开它时,我没有登录.
我的代码看起来像这样 -
WebDriver myD = null;
myD = new FirefoxDriver();
String URL = "https://www.eurostylelighting.com/protected/account/signin?ReturnUrl=%2f";
myD.navigate().to(URL);
myD.findElement(By.cssSelector("input#txtEmailorRewards")).sendKeys("abc@yahoo.com");
myD.findElement(By.cssSelector("input#txtPassword")).sendKeys("abc");
myD.findElement(By.xpath(".//*[@id='accountSignIn']/dl[4]/dd/label/span")).click();
Set<Cookie> cookies = myD.manage().getCookies();
myD.close();
myD= new FirefoxDriver();
myD.navigate().to(URL);
for(Cookie getCookie:cookies)
myD.manage().addCookie(getCookie);
Run Code Online (Sandbox Code Playgroud)