0
votes

Voulez-vous exécuter une seule étape plusieurs fois

J'ai écrit un fichier de fonctionnalité en concombre avec Java pour une opération de connexion. Je souhaite effectuer uniquement une opération de connexion plusieurs fois une fois que l'application a été lancée sans fermer l'application.

Fichier de fonctionnalité P>

<html>
<head>
<title>Login</title>
</head>
<body>
<div align="center">
Username<input type="text" id="user"></br></br>
Password<input type="password" id="pass"></br></br>
<input type="button" value="Login" id="btn">
</div>
</body>
</html>


0 commentaires

3 Réponses :


0
votes

Résultat: Approche ci-dessous lancerait et fermerait le navigateur seulement une fois et effectuerait plusieurs tentatives de connexion

Zone de mise au point: Vous excluez le lancement et la fermeture du navigateur du contour des scénarios Comme nous allons le garder sous les annotations @beforeclass et @afterclass xxx

testtrunner.java < / strong> xxx

drivermanager.java xxx

beautedéfinition.java < / strong> xxx


0 commentaires

0
votes

Vous devez utiliser le scénario avec Tableaux de données kbd> pour itérer la même étape plusieurs fois sans fermer le navigateur.

modifier votre fichier de fonctionnalité comme ci-dessous. P>

@Given("validate the credentials:")
    public void validate_the_credentials(List<String> animals) {
}


0 commentaires

0
votes
package steps;
import java.util.Map;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import cucumber.api.DataTable;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.When;
public class Test {
WebDriver driver;
String gecko="webdriver.chrome.driver";
String path="./drivers/chromedriver1.exe";
@Given("^I open the application$")
public void i_open_the_application() throws Throwable {
    System.setProperty(gecko, path);
    driver=new ChromeDriver();
    driver.manage().window().maximize();
    driver.get("file:///C:/Users/AZ/Desktop/webpages/loginPage.html");
}
@When("^I enter username and password$")
public void i_enter_username_and_password(DataTable table) throws Throwable {
    for (Map<String,String> data : table.asMaps(String.class,String.class)) {
        driver.findElement(By.id("user")).sendKeys(data.get("username"));
        driver.findElement(By.id("pass")).sendKeys(data.get("password"));
        driver.findElement(By.id("btn")).click();
        Thread.sleep(3000);
        driver.navigate().refresh();
        Thread.sleep(3000);
    }
}
@When("^I close the application$")
public void i_close_the_application() throws Throwable {
    driver.close();
}
}

0 commentaires