Tarkime, kad turime išbandyti šį scenarijų:
1. Eikite į prisijungimo puslapį ir prisijunkite prie programos
2. Uždarykite naršyklę
3. Atidarykite naršyklę ir eikite į prisijungimo puslapį - vartotojas neturėtų matyti prisijungimo formos ir jau turėtų būti prisijungęs.
Pirmą kartą prisijungus, slapukai saugomi naršyklėje. „WebDriver“ uždarius naršyklės langą, visi seanso duomenys ir slapukai ištrinami, todėl išbandyti aukščiau pateiktą scenarijų tampa neįmanoma.
Laimei, „WebDriver“ turi funkcijų skaityti slapukus iš naršyklės prieš ją uždarant ir tada atkurti slapukus naujame naršyklės lange.
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();
} }