我正在尝试创建一个 Selenium 测试,其步骤如下:
- 登录 Google 页面。
- 输入有效凭据即可成功登录
- 页面将在此处显示收件箱
- 直接点击浏览器右上角的“关闭”按钮即可关闭浏览器。
- 重复步骤 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/