Selenium Maven项目
如何在Eclipse中创建Selenium Maven项目?
在Eclipse中创建用于Cucumber测试的Selenium Maven测试项目之前,首先我们的计算机系统中必须有以下依赖项:
Java
Eclipse
Cucumber Eclipse Plugin
Web driver Java Client
Selenium
这里我们创建一个Maven项目,通过数据表测试注册功能:
第 1 步
为了首先创建一个Maven项目,转到文件→新建→其他→Maven→Maven项目→下一步。
点击下一步后,会出现一个窗口迅速的。在此窗口中,我们需要提供组 ID(组 ID 在所有项目中唯一标识项目)。我们已将组 ID 提供为 "com.lidihuo"。您可以根据自己的选择提供任何名称。
此外,提供 工件 ID(工件id 代表项目名称)。我们已将工件 ID 提供为 "CucumberTesting"。您可以根据自己的选择指定任何名称。
第 2 步
使用以下步骤打开 pom.xml:
转到 Eclipse 窗口左侧的包资源管理器。
展开为Cucumber 中的数据表测试创建的项目,然后选择其pom.xml 文件。
现在打开 pom.xml 并添加以下依赖项。
在 pom.xml 中为 Selenium 添加依赖项: 这将向 Maven 指示哪些 Selenium jar 文件将从中央存储库下载到本地存储库。
在 pom.xml 文件中,在项目标记内创建一个依赖项标记 (<dependencies></dependencies>)。
现在,在依赖项标签内,创建一个依赖项标签(<dependency></dependency>),并在其中提供以下信息。
<dependencies>
<dependency>
<groupId> org.seleniumhq.selenium </groupId>
<artifactId> selenium-java </artifactId>
<version> 2.47.1 </version>
</dependency>
</dependencies>
第 3 步
在 pom.xml 中为 Cucumber-Java 添加依赖: 它将指示 Maven;哪些 Cucumber 文件将从中央存储库下载到本地存储库。
现在,在依赖标签 (<dependencies></dependencies>) 中,创建一个依赖标签 (<dependency></dependency>),并提供跟踪其中的信息。
<dependencies>
<dependency>
<groupId> info.cukes </groupId>
<artifactId> cucumber-java </artifactId>
<version> 1.0.2 </version>
<scope> test </scope>
</dependency>
</dependencies>
第 4 步
为Cucumber-Junit添加依赖: 它会告诉Maven,从中央下载哪些Cucumber JUnit文件存储库到本地存储库。
现在,在依赖标签 (<dependencies></dependencies>) 中,创建一个依赖标签 (<dependency></dependency>),并提供跟踪其中的信息。
<dependencies>
<dependency>
<groupId> info.cukes </groupId>
<artifactId> cucumber-junit </artifactId>
<version> 1.0.2 </version>
<scope> test </scope>
</dependency>
</dependencies>
第 5 步
为 Junit 添加依赖项 它将指示 Maven,将从中央存储库下载哪些 JUnit 文件到本地存储库。
现在,在依赖标签 (<dependencies></dependencies>) 中,创建一个依赖标签 (<dependency></dependency>),并提供跟踪其中的信息。
<dependencies>
<dependency>
<groupId> junit </groupId>
<artifactId> junit </artifactId>
<version> 4.10 </version>
<scope> test </scope> </dependency>
</dependencies>
完成所有依赖后,验证二进制文件。
成功完成 pom.xml 后,保存它。
转到您的项目 → 清理-可能需要几分钟时间。
现在,在项目的src/test/java文件夹下创建一个名为dataTable的包。
第 6 步
创建特征文件:
在包 dataTable 中,创建一个名为 dataTable.feature 的特征文件。
在特征文件中,写入以下文本。
Feature-Data table
Verify that the new user registration is successful after passing correct inputs.
Scenario:
Given the user on the user registration page.
When user enter invalid data on the page
| Fields | Values |
| First Name | Preeti |
| Last Name | Sharma |
| Email Address | someone@gmail.com |
| Re-enter Email Address | someone@gmail.com |
| Password |PASSWORD |
| Birthdate | 02 |
Then the user registration should be successful.
保存此文件。
第 7 步
创建步骤定义文件:
在包 dataTable 中创建扩展名为".java"并命名为"dataTable.java"的步骤定义文件。
在步骤定义文件中,编写以下代码。
package dataTable;
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import cucumber.annotation.en.Given;
import cucumber.annotation.en.Then;
import cucumber.annotation.en.When;
import cucumber.table.DataTable;
public class StepDefinition {
WebDriver driver = null;
@Given("^I am on user registration page$")
public void goToFacebook() {
//Intiate web browser instance. driver = new FirefoxDriver();
driver.navigate().to("https://www.lidihuo.com/");
}
@When("^I enter valid data on the page$")
public void enterData(DataTable table){
//Initialize data table
List<list> data = table.raw();
System.out.println(data.get(1).get(1));
//Enter data
driver.findElement(By.name("firstname")).sendKeys(data.get(1).get(1));
driver.findElement(By.name("lastname")).sendKeys(data.get(2).get(1));
driver.findElement(By.name("registered_email__")).sendKeys(data.get(3).get(1));
driver.findElement(By.name("registered_email_confirmation__")).
sendKeys(data.get(4).get(1));
driver.findElement(By.name("registered_passwd__")).sendKeys(data.get(5).get(1));
Select dropdownB = new Select(driver.findElement(By.name("birth_day")));
dropdownB.selectByValue("12");
Select dropdownM = new Select(driver.findElement(By.name("birth_month")));
dropdownM.selectByValue("7");
Select dropdownY = new Select(driver.findElement(By.name("birth_year")));
dropdownY.selectByValue("1992");
driver.findElement(By.className("_59mt")).click();
// Click submit button driver.findElement(By.name("websubmit")).click();
}
@Then("^User registration should be successful$")
public void User_registration_should_be_successful() {
if(driver.getCurrentUrl().equalsIgnoreCase("https://www.lidihuo.com/")){
System.out.println("Test Pass");
} else {
System.out.println("Test Failed");
}
driver.close();
}
}
第 8 步
现在创建步骤定义文件后,我们需要创建一个跑步者类文件。
在包 dataTable 中创建一个扩展名为".java"并命名为 RunTest.java 的运行器类。
在运行器类 RunTest.java 中,编写以下代码。
package dataTable;
import org.junit.runner.RunWith;
import cucumber.junit.Cucumber;
@RunWith(Cucumber.class)
@Cucumber.Options(format = {"pretty", "html:target/cucumber"})
public class RunTest { }
保存此文件,并使用以下选项运行测试:
选择运行程序类,即包内的 RunTest.java 文件。
右键单击它,然后选择选项Run as → JUnit。
如果你的执行成功了,你会观察到以下几点:
lidihuo 网站已加载。
我们将看到主页或相应网站提供的页面。
可以在注册页面上输入数据。
将点击提交按钮。