My test :
//@Stochastic
@Listeners(TestNGListener.class)
public class createUser extends FeedTest{
private WebDriver driver;
private static Logger createLog = Logger.getLogger(createUser.class);
@BeforeClass
public void beforeClass() throws Exception {
System.setProperty("log.directory", this.getClass().getName());
PropertyConfigurator.configure(System.getProperty("log4j.configuration"));
driver = UtilsSelenium.createDriver(createLog);
}
@BeforeMethod
public void beforeMethod() throws Exception {
Utils.login(driver,createLog, System.getProperty("base.URL"),"adminSelenium", "adminSelenium");
}
@Test(dataProvider = "feeder")
@Source("fr//Selenium/properties/Data/create/createUserUnique.csv")
public void createUser(String department, String profil, String equipment, String firstName, String lastName, String middleName, String userId, String password, String pin, String email, Boolean deviceProfil, String phoneButtonTemplate, String product, String modele, String protocol, String securityProfil, String directoryNumber, String macAdress) throws Exception {
createLog.info("Début du test QuikcCreateUser");
String language = Utils.findLanguage(driver, createLog);
if(language.equals("FR"))
{
driver.findElement(By.linkText(UtilsSelenium.getTraduction("Traduction.properties","ONGLET_create_FR"))).click();
}
else if(language.equals("EN"))
{
driver.findElement(By.linkText(UtilsSelenium.getTraduction("Traduction.properties","ONGLET_create_EN"))).click();
}
else
{
String screenshotName = UtilsSelenium.createScreenshot(driver, createLog, "LanguageUnknown");
createLog.info("Language inconnu. Impossible d'effectuer le create. Screenshot correspondant : " + screenshotName);
throw new AssertionFailedError("Language inconnu. Impossible d'effectuer le create. Screenshot correspondant : " + screenshotName);
}
//Selection du contexte
WebElement selectDepartment = UtilsSelenium.findElementOnPage(driver, createLog, 60, By.id("COMPONENT_fields(departmentId)"));
Select dropDownDepartment = new Select(selectDepartment);
dropDownDepartment.selectByVisibleText(department);
WebElement selectEquipment = UtilsSelenium.findElementOnPage(driver, createLog, 60, By.id("COMPONENT_fields(create_ECOSYSTEM_SELECTOR)"));
Select dropDownEquipment = new Select(selectEquipment);
dropDownEquipment.selectByVisibleText(equipment);
WebElement selectProfile = UtilsSelenium.findElementOnPage(driver, createLog, 60, By.id("COMPONENT_fields(profileId)"));
Select dropDownProfile = new Select(selectProfile);
dropDownProfile.selectByVisibleText(profil);
driver.findElement(By.id("multswitch_create_FOLD_User_img")).click();
//Saisie infos user
driver.findElement(By.id("COMPONENT_fields(User_firstName)")).clear();
driver.findElement(By.id("COMPONENT_fields(User_firstName)")).sendKeys(firstName);
driver.findElement(By.id("COMPONENT_fields(User_lastName)")).clear();
driver.findElement(By.id("COMPONENT_fields(User_lastName)")).sendKeys(lastName);
driver.findElement(By.id("COMPONENT_fields(User_middleName)")).clear();
driver.findElement(By.id("COMPONENT_fields(User_middleName)")).sendKeys(middleName);
if(language.equals("FR"))
{
driver.findElement(By.linkText(UtilsSelenium.getTraduction("Traduction.properties","BUTTON_create__FR"))).click();
}
else if(language.equals("EN"))
{
driver.findElement(By.linkText(UtilsSelenium.getTraduction("Traduction.properties","BUTTON_create__EN"))).click();
}
else
{
String screenshotName = UtilsSelenium.createScreenshot(driver, createLog, "LanguageUnknown");
createLog.info("Language inconnu. Impossible d'appliquer le script . Screenshot correspondant : " + screenshotName);
throw new AssertionFailedError("Language inconnu. Impossible d'appliquer le script . Screenshot correspondant : " + screenshotName);
}
userId = driver.findElement(By.id("COMPONENT_fields(User_userId)")).getAttribute("value");
driver.findElement(By.id("COMPONENT_fields(User_password)")).clear();
driver.findElement(By.id("COMPONENT_fields(User_password)")).sendKeys(password);
driver.findElement(By.id("COMPONENT_fields_confirm(User_password)")).clear();
driver.findElement(By.id("COMPONENT_fields_confirm(User_password)")).sendKeys(password);
driver.findElement(By.id("COMPONENT_fields(User_pin)")).clear();
driver.findElement(By.id("COMPONENT_fields(User_pin)")).sendKeys(pin);
driver.findElement(By.id("COMPONENT_fields_confirm(User_pin)")).clear();
driver.findElement(By.id("COMPONENT_fields_confirm(User_pin)")).sendKeys(pin);
driver.findElement(By.id("COMPONENT_fields(User_email)")).clear();
driver.findElement(By.id("COMPONENT_fields(User_email)")).sendKeys(email);
//UtilsSelenium.createScreenshot(driver, createLog, "01-createUserPart_" + userId);
//Saisie infos device profil
if(deviceProfil)
{
driver.findElement(By.id("checkbox_COMPONENT_fields(User_deviceProfile)")).click();
WebElement selectPhoneButtonTemplate = UtilsSelenium.findElementOnPage(driver, createLog, 60, By.id("COMPONENT_fields(User_devicePhoneButtonTemplate)"));
Select dropDownPhoneButtonTemplate = new Select(selectPhoneButtonTemplate);
dropDownPhoneButtonTemplate.selectByVisibleText(phoneButtonTemplate);
WebElement selectProduct = driver.findElement(By.id("COMPONENT_fields(User_deviceProduct)"));
Select dropDownProduct = new Select(selectProduct);
dropDownProduct.selectByVisibleText(product);
WebElement selectModele = driver.findElement(By.id("COMPONENT_fields(User_deviceModel)"));
Select dropDownModele = new Select(selectModele);
dropDownModele.selectByVisibleText(modele);
WebElement selectProtocol = driver.findElement(By.id("COMPONENT_fields(User_deviceProtocol)"));
Select dropDownProtocol = new Select(selectProtocol);
dropDownProtocol.selectByVisibleText(protocol);
//UtilsSelenium.createScreenshot(driver, createLog, "02-createDeviceProfilPart_" + userId);
}
//Saisie infos ligne
driver.findElement(By.id("multswitch_create_FOLD_Line_img")).click();
driver.findElement(By.xpath("/html/body/div[2]/table/tbody/tr[2]/td[2]/form[2]/table/tbody/tr[3]/td/div/div[2]/table/tbody/tr/td[2]/table/tbody/tr/td[2]/a/img")).click();
//driver.findElement(By.id("COMPONENT_fields(Line_directoryNumber)")).clear();
//driver.findElement(By.id("COMPONENT_fields(Line_directoryNumber)")).sendKeys(directoryNumber);
directoryNumber = driver.findElement(By.id("COMPONENT_fields(Line_directoryNumber)")).getAttribute("value");
//UtilsSelenium.createScreenshot(driver, createLog, "03-createLinePart_" + userId);
//Saisie infos device
driver.findElement(By.id("multswitch_create_FOLD_Device_img")).click();
driver.findElement(By.id("COMPONENT_fields(Device_ciscoName)")).clear();
driver.findElement(By.id("COMPONENT_fields(Device_ciscoName)")).sendKeys(macAdress);
WebElement selectPhoneButtonTemplate = driver.findElement(By.id("COMPONENT_fields(Device_phoneButtonTemplate)"));
Select dropDownPhoneButtonTemplate = new Select(selectPhoneButtonTemplate);
dropDownPhoneButtonTemplate.selectByVisibleText(phoneButtonTemplate);
WebElement selectProduct = driver.findElement(By.id("COMPONENT_fields(Device_product)"));
Select dropDownProduct = new Select(selectProduct);
dropDownProduct.selectByVisibleText(product);
WebElement selectModele = driver.findElement(By.id("COMPONENT_fields(Device_model)"));
Select dropDownModele = new Select(selectModele);
dropDownModele.selectByVisibleText(modele);
WebElement selectProtocol = driver.findElement(By.id("COMPONENT_fields(Device_protocol)"));
Select dropDownProtocol = new Select(selectProtocol);
dropDownProtocol.selectByVisibleText(protocol);
WebElement selectSecurityProfil = driver.findElement(By.id("COMPONENT_fields(Device_securityProfile)"));
Select dropDownSecurityProfil = new Select(selectSecurityProfil);
dropDownSecurityProfil.selectByVisibleText(securityProfil);
//new Select(driver.findElement(By.id("COMPONENT_fields(Device_securityProfile)"))).selectByVisibleText(securityProfil);
//UtilsSelenium.createScreenshot(driver, createLog, "03-createDevicePart_" + userId);
//Application du create
if(language.equals("FR"))
{
driver.findElement(By.linkText(UtilsSelenium.getTraduction("Traduction.properties","BUTTON_create_CREATE_FR"))).click();
}
else if(language.equals("EN"))
{
driver.findElement(By.linkText(UtilsSelenium.getTraduction("Traduction.properties","BUTTON_create_CREATE_EN"))).click();
}
else
{
String screenshotName = UtilsSelenium.createScreenshot(driver, createLog, "LanguageUnknown");
createLog.info("Language inconnu. Impossible d'effectuer le create. Screenshot correspondant : " + screenshotName);
throw new AssertionFailedError("Language inconnu. Impossible d'effectuer le create. Screenshot correspondant : " + screenshotName);
}
UtilsSelenium.waitingPage(driver, createLog, 120);
if(language.equals("FR"))
{
UtilsSelenium.verifyMessage(driver, createLog, "04-create_" + userId, UtilsSelenium.getTraduction("Traduction.properties","create_OK_FR"));
UtilsSelenium.verifyErrorMessage(driver, createLog, "04-createError_" + userId);
createLog.info("create OK");
}
else if(language.equals("EN"))
{
UtilsSelenium.verifyMessage(driver, createLog, "04-create_" + userId, UtilsSelenium.getTraduction("Traduction.properties","create_OK_EN"));
UtilsSelenium.verifyErrorMessage(driver, createLog, "04-createError_" + userId);
createLog.info("create OK");
}
else
{
String screenshotName = UtilsSelenium.createScreenshot(driver, createLog, "LanguageUnknown");
createLog.info("Language inconnu. Impossible de vérifier le create. Screenshot correspondant : " + screenshotName);
throw new AssertionFailedError("Language inconnu. Impossible de vérifier le create. Screenshot correspondant : " + screenshotName);
}
//Click sur le lien suite création pour consultation
driver.findElement(By.linkText(firstName + " " + lastName + " (" + userId + ")")).click();
createLog.info("Consultation du composant " + userId);
//UtilsSelenium.createScreenshot(driver, createLog, "05-ConsultComponent_" + userId);
//Click sur le bouton Audit depuis page de consultation
if(language.equals("FR"))
{
driver.findElement(By.linkText(UtilsSelenium.getTraduction("Traduction.properties","BUTTON_AUDIT_FR"))).click();
}
else if(language.equals("EN"))
{
driver.findElement(By.linkText(UtilsSelenium.getTraduction("Traduction.properties","BUTTON_AUDIT_EN"))).click();
}
else
{
String screenshotName = UtilsSelenium.createScreenshot(driver, createLog, "LanguageUnknown");
createLog.info("Language inconnu. Impossible de trouver le bouton audit. Screenshot correspondant : " + screenshotName);
throw new AssertionFailedError("Language inconnu. Impossible de trouver le bouton audit. Screenshot correspondant : " + screenshotName);
}
//Click sur le bouton Audit depuis page accueil audit
if(language.equals("FR"))
{
driver.findElement(By.linkText(UtilsSelenium.getTraduction("Traduction.properties","BUTTON_AUDIT_FR"))).click();
}
else if(language.equals("EN"))
{
driver.findElement(By.linkText(UtilsSelenium.getTraduction("Traduction.properties","BUTTON_AUDIT_EN"))).click();
}
else
{
String screenshotName = UtilsSelenium.createScreenshot(driver, createLog, "LanguageUnknown");
createLog.info("Language inconnu. Impossible de trouver le bouton audit. Screenshot correspondant : " + screenshotName);
throw new AssertionFailedError("Language inconnu. Impossible de trouver le bouton audit. Screenshot correspondant : " + screenshotName);
}
//Vérification de l'audit
//TODO checker résultat en fonction du languague et être plus précis sur vérif
UtilsSelenium.waitingPage(driver, createLog, 120);
if(language.equals("FR"))
{
try{
UtilsSelenium.verifyMessage(driver, createLog, "06-AuditResult_" + userId, UtilsSelenium.getTraduction("Traduction.properties","AUDIT_OK_FR"));
UtilsSelenium.verifyErrorMessage(driver, createLog, "06-AuditResultError_" + userId);
Assert.assertTrue(driver.findElement(By.xpath(UtilsSelenium.getXpath("Xpath.properties", "AUDIT_RESULT"))).getText().contains(UtilsSelenium.getTraduction("Traduction.properties","AUDIT_NO_DIFFERENCE_FR")));
String randomFileName = UtilsSelenium.createScreenshot(driver, createLog, "06-AuditResult_" + userId);
createLog.info("Résultat de l'audit: " + driver.findElement(By.xpath(UtilsSelenium.getXpath("Xpath.properties", "AUDIT_RESULT"))).getText());
}
catch(AssertionFailedError e)
{
String randomFileName = UtilsSelenium.createScreenshot(driver, createLog, "06-AuditResult_" + userId);
createLog.info("Résultat de l'audit: " + driver.findElement(By.xpath(UtilsSelenium.getXpath("Xpath.properties", "AUDIT_RESULT"))).getText());
Assert.assertTrue("Différences trouvées lors de l'audit: " + driver.findElement(By.xpath(UtilsSelenium.getXpath("Xpath.properties", "AUDIT_RESULT"))).getText(),driver.findElement(By.xpath(UtilsSelenium.getXpath("Xpath.properties", "AUDIT_RESULT"))).getText().contains(UtilsSelenium.getTraduction("Traduction.properties","AUDIT_NO_DIFFERENCE_FR")));
}
}
else if(language.equals("EN"))
{
try{
UtilsSelenium.verifyMessage(driver, createLog, "04-create_" + userId, UtilsSelenium.getTraduction("Traduction.properties","AUDIT_OK_EN"));
UtilsSelenium.verifyErrorMessage(driver, createLog, "04-createError_" + userId);
Assert.assertTrue(driver.findElement(By.xpath(UtilsSelenium.getXpath("Xpath.properties", "AUDIT_RESULT"))).getText().contains(UtilsSelenium.getTraduction("Traduction.properties","AUDIT_NO_DIFFERENCE_EN")));
String randomFileName = UtilsSelenium.createScreenshot(driver, createLog, "06-AuditResult_" + userId);
createLog.info("Résultat de l'audit: " + driver.findElement(By.xpath(UtilsSelenium.getXpath("Xpath.properties", "AUDIT_RESULT"))).getText());
}
catch(AssertionFailedError e)
{
String randomFileName = UtilsSelenium.createScreenshot(driver, createLog, "06-AuditResult_" + userId);
createLog.info("Résultat de l'audit: " + driver.findElement(By.xpath(UtilsSelenium.getXpath("Xpath.properties", "AUDIT_RESULT"))).getText());
Assert.assertTrue("Différences trouvées lors de l'audit: " + driver.findElement(By.xpath(UtilsSelenium.getXpath("Xpath.properties", "AUDIT_RESULT"))).getText(),driver.findElement(By.xpath(UtilsSelenium.getXpath("Xpath.properties", "AUDIT_RESULT"))).getText().contains(UtilsSelenium.getTraduction("Traduction.properties","AUDIT_NO_DIFFERENCE_EN")));
}
}
else
{
String screenshotName = UtilsSelenium.createScreenshot(driver, createLog, "LanguageUnknown");
createLog.info("Language inconnu. Impossible de vérifier le résultat de l'audit. Screenshot correspondant : " + screenshotName);
throw new AssertionFailedError("Language inconnu. Impossible de vérifier le résultat de l'audit. Screenshot correspondant : " + screenshotName);
}
//Click sur bouton back pour retour page de consultation
if(language.equals("FR"))
{
driver.findElement(By.linkText(UtilsSelenium.getTraduction("Traduction.properties","BUTTON_BACK_FR"))).click();
}
else if(language.equals("EN"))
{
driver.findElement(By.linkText(UtilsSelenium.getTraduction("Traduction.properties","BUTTON_BACK_EN"))).click();
}
else
{
String screenshotName = UtilsSelenium.createScreenshot(driver, createLog, "LanguageUnknown");
createLog.info("Language inconnu. Impossible de trouver le bouton retour. Screenshot correspondant : " + screenshotName);
throw new AssertionFailedError("Language inconnu. Impossible de trouver le bouton retour. Screenshot correspondant : " + screenshotName);
}
//Click sur bouton Delete depuis page de consultation
if(language.equals("FR"))
{
driver.findElement(By.linkText(UtilsSelenium.getTraduction("Traduction.properties","BUTTON_DELETE_FR"))).click();
}
else if(language.equals("EN"))
{
driver.findElement(By.linkText(UtilsSelenium.getTraduction("Traduction.properties","BUTTON_DELETE_EN"))).click();
}
else
{
String screenshotName = UtilsSelenium.createScreenshot(driver, createLog, "LanguageUnknown");
createLog.info("Language inconnu. Impossible de trouver le bouton Delete. Screenshot correspondant : " + screenshotName);
throw new AssertionFailedError("Language inconnu. Impossible de trouver le bouton Delete. Screenshot correspondant : " + screenshotName);
}
//Alert DeleteAlert = driver.switchTo().alert();
//DeleteAlert.accept();
//UtilsSelenium.createScreenshot(driver, createLog, "07-DeleteConfirm_" + userId);
//Validation de la confirmation
if(language.equals("FR"))
{
driver.findElement(By.linkText(UtilsSelenium.getTraduction("Traduction.properties","BUTTON_CONFIRM_FR"))).click();
}
else if(language.equals("EN"))
{
driver.findElement(By.linkText(UtilsSelenium.getTraduction("Traduction.properties","BUTTON_CONFIRM_EN"))).click();
}
else
{
String screenshotName = UtilsSelenium.createScreenshot(driver, createLog, "LanguageUnknown");
createLog.info("Language inconnu. Impossible de trouver le bouton Confirmer. Screenshot correspondant : " + screenshotName);
throw new AssertionFailedError("Language inconnu. Impossible de trouver le bouton Confirmer. Screenshot correspondant : " + screenshotName);
}
UtilsSelenium.waitingPage(driver, createLog, 120);
if(language.equals("FR"))
{
UtilsSelenium.verifyMessage(driver, createLog, "04-create_" + userId, UtilsSelenium.getTraduction("Traduction.properties","DELETE_OK_FR"));
UtilsSelenium.verifyErrorMessage(driver, createLog, "04-createError_" + userId);
createLog.info("Delete OK");
}
else if(language.equals("EN"))
{
UtilsSelenium.verifyMessage(driver, createLog, "04-create_" + userId, UtilsSelenium.getTraduction("Traduction.properties","DELETE_OK_EN"));
UtilsSelenium.verifyErrorMessage(driver, createLog, "04-createError_" + userId);
createLog.info("Delete OK");
}
else
{
String screenshotName = UtilsSelenium.createScreenshot(driver, createLog, "LanguageUnknown");
createLog.info("Language inconnu. Impossible de vérifier le Delete. Screenshot correspondant : " + screenshotName);
throw new AssertionFailedError("Language inconnu. Impossible de vérifier le Delete. Screenshot correspondant : " + screenshotName);
}
}
@AfterMethod
public void afterMethod() throws Exception {
Utils.logout(driver,createLog);
}
@AfterClass
public void afterClass() {
System.setProperty("log.directory", this.getClass().getName());
PropertyConfigurator.configure(System.getProperty("log4j.configuration"));
UtilsSelenium.closeDriver(driver, createLog);