cookies - 在 Selenium 中,如何使用现有的 cookie 打开 Firefox 浏览器

标签 cookies selenium-webdriver

我正在尝试创建一个 Selenium 测试,其步骤如下:

  1. 登录 Google 页面。
  2. 输入有效凭据即可成功登录
  3. 页面将在此处显示收件箱
  4. 直接点击浏览器右上角的“关闭”按钮即可关闭浏览器。
  5. 重复步骤 1

在此测试用例中,我希望在第 5 步之后,Google 页面不再要求提供凭据并直接移至收件箱页面。如何使用 selenium webdriver 做到这一点?

最佳答案

这应该可以满足您的需要。使用 driver.manage().getCookies(); 将 cookie 从第一个驱动程序实例复制到新的驱动程序实例中;

FirefoxDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("https://mail.google.com/");
//Passing valid credentials
driver.findElement(By.xpath("//*[@id='Email']")).sendKeys("<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="bcc8d9cfc8c9cfd9cefcdbd1ddd5d092dfd3d1" rel="noreferrer noopener nofollow">[email protected]</a>");
driver.findElement(By.xpath("//*[@id='Passwd']")).sendKeys("password");
driver.findElement(By.xpath("//*[@id='signIn']")).click();
Thread.sleep(20000);
Set<Cookie> cookies = driver.manage().getCookies();
driver.close();
//Starting new browser 
driver = new FirefoxDriver();
for(Cookie cookie : cookies)
{
    driver.manage().addCookie(cookie);
}
driver.manage().window().maximize();
driver.get("https://mail.google.com/");
Thread.sleep(20000);
driver.quit();

关于cookies - 在 Selenium 中,如何使用现有的 cookie 打开 Firefox 浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29455393/

相关文章:

PHP Hit Counter...我可以将 SESSION 转换为 COOKIE 吗?

javascript - Chrome 没有将 cookie 路径设置为 root

c# - 通过c#获取多个格式错误的cookie

java - findElement(By) 和 findElementBy() 有什么区别?

javascript - 单击新数据后刷新页面时 Protractor e2e

html - 如何在 Flash 中读取 HTML cookie?

javascript - 服务前处理 Cookie

python - 在输入字段中输入数据不适用于 Selenium

java - 在 HTML 中查找子元素的 xpath 时出错

java - 尝试在 Selenium 中读取跨度之间的文本时出现数字格式异常