我正在尝试创建一个具有以下步骤的硒测试:
在这个测试案例中,我希望在第5步之后google页面不会再次请求凭据并直接转到收件箱页面。怎么用selenium webdriver做到这一点?
答案 0 :(得分:3)
这应该可以满足您的需求。使用driver.manage()将cookie从第一个驱动程序实例复制到新的驱动程序实例中.getCookies();
FirefoxDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("https://mail.google.com/");
//Passing valid credentials
driver.findElement(By.xpath("//*[@id='Email']")).sendKeys("testuser@gmail.com");
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();
答案 1 :(得分:0)
为什么要点击&#34;关闭&#34;关闭Selenium会话?浏览器按钮?它真的不是一种如何运作的方式。每个selenbium框架都有自己的会话结束实现,发明新东西不是必需的。
为了您的目的,您有很多方法可以做
1)登录后将cookie保存在某个全局变量/对象中,并在下次会话开始时添加它们
2)实现contsctructor方法(取决于你的语言和框架,当你有一个登录应用程序的逻辑时,它可能类似于php中的setUp()或javascript中的beforeEach())。
为什么会这样?当您关闭浏览器时,Selenium会在没有任何可用内容的情况下进行全新会话,这是为了#34; clear&#34;测试结果。
答案 2 :(得分:0)
我是硒的新人。可能是我的步骤可能不正确。如果我错了,请纠正我。
此测试用例背后的目标是,如果用户关闭用户成功登录的网站,然后关闭浏览器。现在,当为同一站点午餐时,登录页面不应显示并重定向到收件箱页面。
FirefoxDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("https://mail.google.com/");
//Passing valid credentials
driver.findElement(By.xpath("//*[@id='Email']")).sendKeys("testuser@gmail.com");
driver.findElement(By.xpath("//*[@id='Passwd']")).sendKeys("password");
driver.findElement(By.xpath("//*[@id='signIn']")).click();
Thread.sleep(20000);
driver.close();
//Starting new browser
driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.get("https://mail.google.com/");
Thread.sleep(20000);
driver.quit();