plugins {
id 'java'
}
group = 'org.example'
version = '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
testImplementation 'io.cucumber:cucumber-java:7.1.0'
testImplementation 'com.codeborne:selenide:7.2.0'
testImplementation 'io.cucumber:cucumber-junit:7.1.0'
testImplementation 'io.qameta.allure:allure-selenide:2.25.0'
testImplementation 'io.qameta.allure:allure-junit5:2.25.0'
testImplementation 'com.mysql:mysql-connector-j:8.3.0'
}
test {
useJUnitPlatform()
}
wrapper {
gradleVersion("8.7")
}
@BeforeAll
public void setUp() {
WebDriverManager.chromedriver().setup();
WebDriverManager.chromedriver().clearDriverCache().setup();
WebDriverManager.chromedriver().clearResolutionCache().setup();
ChromeOptions options = new ChromeOptions();
options.setCapability("browserVersion", "latest-1");
options.setCapability("platformName", "MacOS Catalina");
WebDriverManager wdm = WebDriverManager.chromedriver().capabilities(options);
wdm.setup();
WebDriver driver = new ChromeDriver(options);
driver = wdm.remoteAddress("https://***").create();
//
WebDriverManager.chromedriver().setup();
Configuration.browser = "chrome";
Configuration.driverManagerEnabled = true;
Configuration.browserSize = "1920x1080";
Configuration.headless = false;
}
}
Feature: smoke test #1, authorization in crm
Scenario: successful authorization
When Open login page "https://***"
And Enter value in "Login" text: "**"
And Enter value in "password" text: "***"
And Click the button "submit"
Then The main page will open "https://***"
import com.codeborne.selenide.Config;
import com.codeborne.selenide.Configuration;
import io.cucumber.java.BeforeAll;
import io.github.bonigarcia.wdm.WebDriverManager;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import static org.openqa.selenium.WebDriver.*;
abstract public class BaseTest {
@BeforeAll
public void setUp() {
WebDriverManager.chromedriver().setup();
WebDriverManager.chromedriver().clearDriverCache().setup();
WebDriverManager.chromedriver().clearResolutionCache().setup();
ChromeOptions options = new ChromeOptions();
options.setBinary("/Applications/Google Chrome.app/Contents/MacOS/Google Chrome");
WebDriver driver = new ChromeDriver(options);
driver.get("https://***");
options.addArguments("--headless=new");
driver.close();
driver.quit();
WebDriverManager.chromedriver().setup();
Configuration.browser = "chrome";
Configuration.driverManagerEnabled = true;
Configuration.browserSize = "1920x1080";
Configuration.headless = false;
}
}
package Step;
import com.codeborne.selenide.Configuration;
import com.codeborne.selenide.Selenide;
import com.codeborne.selenide.SelenideElement;
import com.codeborne.selenide.WebDriverRunner;
import io.cucumber.java.en.And;
import io.cucumber.java.en.Then;
import io.cucumber.java.en.When;
import org.openqa.selenium.By;
import org.junit.jupiter.api.Assertions;
import org.openqa.selenium.Dimension;
import static com.codeborne.selenide.Selenide.$x;
import static com.codeborne.selenide.files.DownloadActions.click;
public class MyStepdefs {
// final private SelenideElement Login = $x("//input[@name ='Login']");
// final private SelenideElement Password = $x("//input[@name ='password']");
// final private SelenideElement btnType = $x("//input[@type ='sabmit']");
@When("Open login page \"([^\"]*)\"$")
public void openLoginPage(String url) {
// Dimension dimension = new Dimension(1920, 1080);
// Selenide.open("URL");
// WebDriverRunner.getWebDriver().manage().window().setSize(dimension);
Selenide.open(url);
}
@And("Enter value in \"([^\"]*)\" text: \"([^\"]*)\"$")
public void enterValueInText(String fieldName, String fieldValue) {
String Name;
if (fieldName.equals("Login")) Name = "Login";
else Name = "password";
WebDriverRunner.getWebDriver().findElement(By.name(Name)).sendKeys(fieldName);
}
@And("Click the button \"([^\"]*)\"$")
public void clickTheButton(String btnLog) {
WebDriverRunner.getWebDriver().findElement(By.name(btnLog)).click();
}
@Then("The main page will open \"([^\"]*)\"$")
public void theMainPageWillOpen(String url2) {
String currentUrl = WebDriverRunner.getWebDriver().getCurrentUrl();
Assertions.assertEquals(currentUrl, url2);
}
}