Selen - Hvernig á að endurheimta smákökur í nýjum vafraglugga

Segjum að við verðum að prófa eftirfarandi atburðarás:

1. Farðu á innskráningarsíðu og skráðu þig inn í forritið
2. Lokaðu vafranum
3. Opnaðu vafrann og farðu á innskráningarsíðuna - notandinn ætti ekki að sjá innskráningarformið og ætti að vera þegar innskráður.

Við fyrstu innskráningu eru vafrakökur geymdar í vafranum. Í WebDriver, þegar vafraglugginn er lokaður, er öllum fundargögnum og fótsporum eytt, svo prófun á ofangreindum atburðarás verður ómöguleg.


Sem betur fer hefur WebDriver virkni til að lesa smákökurnar úr vafranum áður en hann lokar og endurheimta síðan smákökurnar í nýjum vafraglugga.

import org.openqa.selenium.By; import org.openqa.selenium.Cookie; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.testng.Assert; import java.util.Set; public class CookieTest {
WebDriver driver;
@Test
public void login_state_should_be_restored() {
driver = new FirefoxDriver();

driver.get('http://www.example.com/login');
driver.findElement(By.id('username')).sendKeys('admin');
driver.findElement(By.id('password')).sendKeys('12345');
driver.findElement(By.id('login')).click();

Assert.assertTrue(


driver.findElement(By.id('welcome')).isDisplayed());

//Before closing the browser, read the cookies
Set allCookies = driver.manage().getCookies();

driver.close();

//open a new browser window
driver = new FirefoxDriver();

//restore all cookies from previous session
for(Cookie cookie : allCookies) {

driver.manage().addCookie(cookie);
}

driver.get('http://www.example.com/login'); //Login page should not be disaplyed
Assert.assertTrue(


driver.findElement(By.id('welcome')).isDisplayed());

driver.close();
} }