Еhe actual does not match the expected, although it should. I'm a newbie. I am writing a Junit test using selenium methods. I wrote a successful test for generating random data and entering it into the new customer registration fields on the test site. Unfortunately, when comparing two Maps, I ran into a problem. I would be glad if someone explains what the problem is. Thank you.
import org.apache.commons.lang3.RandomStringUtils;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.PageFactory;
import org.testng.Assert;
import java.util.*;
import java.util.concurrent.TimeUnit;
public class Client {
WebDriver driver;
String email;
String country;
String city;
String phoneNumber;
String skype;
private static String PAGE_URL = "http://serviceacc.foxminded.com.ua/";
@FindBy(xpath = "//input[@id='username']")
WebElement usernameField;
@FindBy(xpath = "//input[@id='password']")
WebElement passwordField;
@FindBy(xpath = "//input[@name='login-submit']")
WebElement submitButton;
@FindBy(xpath = "//span[contains(.,'Клиенты')]")
WebElement customerPage;
@FindBy(xpath = "//button[contains(.,'Create Client')]")
WebElement createClientButton;
@FindBy(xpath = "//input[@name='firstName']")
WebElement firstnameField;
@FindBy(xpath = "//input[@name='lastName']")
WebElement lastnameField;
@FindBy(xpath = "//button[@type='submit']")
WebElement submitClientButton;
@FindBy(xpath = "//input[@placeholder='Поиск']")
WebElement searchField;
@FindBy(xpath = "//a[contains(.,'Ivan Ivanov')]")
WebElement clientWasGenerated;
@FindBy(xpath = "//input[@name='email']")
WebElement clientEmail;
@FindBy(xpath = "//input[@name='country']")
WebElement clientCountry;
@FindBy(xpath = "//input[@name='city']")
WebElement clientCity;
@FindBy(xpath = "//input[@name='phoneNumber']")
WebElement clientPhoneNumber;
@FindBy(xpath = "//input[@name='skype']")
WebElement clientSkype;
@FindBy(xpath = "//button[@type='submit'][contains(.,'Save')]")
WebElement saveAllData;
public Client(WebDriver driver) {
this.driver = driver;
driver.get(PAGE_URL);
PageFactory.initElements(driver, this);
}
public void authorization() {
usernameField.sendKeys("admin");
passwordField.sendKeys("admin");
submitButton.click();
}
public void locateForCreation() {
customerPage.click();
createClientButton.click();
}
public void setClientName() {
firstnameField.sendKeys("Ivan");
lastnameField.sendKeys("Ivanov");
submitClientButton.click();
}
public void setClientEmail(){
String randomEmail = RandomStringUtils.randomAlphabetic(10);
email = randomEmail+"@"+randomEmail+".com";
clientEmail.sendKeys(email);
}
public void setClientCountry(){
String randomCountry = RandomStringUtils.randomAlphabetic(15).toLowerCase();
country = randomCountry.substring(0,1).toUpperCase()+randomCountry.substring(1);
clientCountry.sendKeys(country);
}
public void setClientCity(){
String randomCity = RandomStringUtils.randomAlphabetic(15).toLowerCase();
city = randomCity.substring(0,1).toUpperCase()+randomCity.substring(1);
clientCity.sendKeys(city);
}
public void setClientPhoneNumber(){
phoneNumber = RandomStringUtils.randomNumeric(10);
clientPhoneNumber.sendKeys(phoneNumber);
}
public void setClientSkype() {
skype = RandomStringUtils.randomAlphanumeric(15);
clientSkype.sendKeys(skype);
}
public void clickOnSave(){
saveAllData.click();
}
public void openNewGeneretedClient() {
searchField.sendKeys("Ivan Ivanov");
clientWasGenerated.click();
}
public void compareData() throws InterruptedException {
driver.manage().timeouts().implicitlyWait(5000, TimeUnit.SECONDS);
Thread.sleep(3000);
Map<String, String> mapActual = new HashMap<>();
Map<String, String> mapExpected = new HashMap<>();
mapActual.put("e_mail", email);
mapActual.put("country", country);
mapActual.put("city", city);
mapActual.put("phoneNumber", phoneNumber);
mapActual.put("skype", skype);
mapExpected.put("e_mail",clientEmail.getText());
mapExpected.put("country", clientCountry.getText());
mapExpected.put("city", clientCity.getText());
mapExpected.put("phone number", clientPhoneNumber.getText());
mapExpected.put("skype", clientSkype.getText());
Assert.assertEquals(mapActual,mapExpected);
}
}
ClientTest
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
public class ClientTest {
WebDriver driver;
@Before
public void setup() {
driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
}
@Test
public void applyAsClient() throws InterruptedException {
Client client = new Client(driver);
client.authorization();
client.locateForCreation();
client.setClientName();
client.setClientEmail();
client.setClientCountry();
client.setClientCity();
client.setClientPhoneNumber();
client.setClientSkype();
client.clickOnSave();
client.openNewGeneretedClient();
client.compareData();
}
@After
public void close(){
driver.close();
}
}
Was writen at Intellij
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…