Мое требование:
Когда присутствует кнопка «Логин», нажмите кнопку «Логин» и работайте над вариантом использования.
Когда кнопка «Логин» НЕ присутствует, работайте непосредственно над вариантом использования (Не нужно нажимать кнопку «Войти»)
Итак, я написал свой @Test, как показано ниже.
@Test
@Parameters({ "baseURL" })
public void settings_Preferences_Method(String baseURL) {
SoftAssert assertions = new SoftAssert();
goTo_Us_PioneerHomePage(baseURL);
**goTo_Us_Login(assertions);**
goTo_Us_Settings("expectedText");
goTo_Us_Signout(assertions);
assertions.assertAll();
}
@Step("Login")
public void goTo_Us_Login(SoftAssert assertions) {
**int elementPresent = isElementPresent(By.xpath((loginXpath)));**
if (elementPresent>0) {
writeText(By.xpath(emailAddressXpath),"uat106@gmail.com");
writeText(By.xpath(passwordXpath),"test$");
click(By.xpath(signinXpath));
Assert.assertEquals(readText(By.xpath(v_DashboardXpath)), "expected Text", "User is NOT in Login page");
}
}
Используемые методы:
public void click(By elementLocation) {
wait.until(ExpectedConditions.elementToBeClickable(elementLocation));
driver.findElement(elementLocation).click();
}
public String readText(By elementLocation) {
wait.until(ExpectedConditions.visibilityOfElementLocated(elementLocation));
return driver.findElement(elementLocation).getText();
}
public void writeText(By elementLocation, String text) {
wait.until(ExpectedConditions.elementToBeClickable(elementLocation));
driver.findElement(elementLocation).sendKeys(text);
}
public int isElementPresent(By by) {
wait.until(driver -> driver.findElements(by).size() > 0);**- When driver.findElements(by).size() = 0 , Control is getting out of 'isElementPresent' method and then getting out of 'goTo_Us_Login' method and then getting out of 'settings_Preferences_Method' WITHOUT executing '3 lines of code' specified below**
return driver.findElements(by).size();
}
Проблема
:
Когда driver.findElements (by) .size() = 0, Control выходит из метода «isElementPresent», затем выходит из метода «goTo_Us_Login», а затем выходит из «settings_Preferences_Method» БЕЗ выполнения «3 строк кода», указанных ниже *
goTo_Us_Settings("expectedText");
goTo_Us_Signout(assertions);
assertions.assertAll();
Выше 3 строки кода должны выполняться независимо от значения в driver.findElements (by) .size ()