Cucumber java + Webdriver(一)
一、打开Eclipse,新建一个maven项目,打开pom.xml
1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 3 <modelVersion>4.0.0</modelVersion> 4 5 6 <groupId>Cucumber</groupId> 7 <artifactId>Cucumber</artifactId> 8 <version>0.0.1-SNAPSHOT</version> 9 <packaging>jar</packaging> 10 11 <name>Cucumber</name> 12 <url>http://maven.apache.org</url> 13 <repositories> 14 <repository> 15 <id>sonatype-snapshots</id> 16 <url>https://oss.sonatype.org/content/repositories/snapshots</url> 17 <snapshots> 18 <enabled>true</enabled> 19 </snapshots> 20 </repository> 21 </repositories> 22 23 <properties> 24 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 25 </properties> 26 27 <dependencies> 28 <dependency> 29 <groupId>io.cucumber</groupId> 30 <artifactId>cucumber-junit</artifactId> 31 <version>2.3.1</version> 32 <scope>test</scope> 33 </dependency> 34 <dependency> 35 <groupId>junit</groupId> 36 <artifactId>junit</artifactId> 37 <version>4.12</version> 38 <scope>test</scope> 39 </dependency> 40 <dependency> 41 <groupId>io.cucumber</groupId> 42 <artifactId>cucumber-java</artifactId> 43 <version>2.3.1</version> 44 <scope>test</scope> 45 </dependency> 46 <dependency> 47 <groupId>org.seleniumhq.selenium</groupId> 48 <artifactId>selenium-java</artifactId> 49 <version>3.5.3</version> 50 </dependency> 51 </dependencies> 52 53 </project>
二、新建一个RunCukesTest运行类
1 package mypackage; 2 3 import org.junit.runner.RunWith; 4 5 import cucumber.api.CucumberOptions; 6 import cucumber.api.junit.Cucumber; 7 8 @RunWith(Cucumber.class) 9 @CucumberOptions( 10 format = {"pretty", "html:target/cucumber"}) 11 public class RunCukesTest { 12 13 }
三、新建一个文件baiduSearch.feature
1 Feature: 百度搜索 2 打开百度进行搜索 3 4 Scenario: 百度搜索selenium 5 Given Go to baidu home 6 When I find baidu logo 7 And Type the search text "selenium" 8 And Click the submit 9 Then Wait the query result
四、新建一个业务类BaiduSearchStepfs
1 package mypackage; 2 3 import cucumber.api.java.en.And; 4 import cucumber.api.java.en.Given; 5 import cucumber.api.java.en.Then; 6 import cucumber.api.java.en.When; 7 8 import java.util.concurrent.TimeUnit; 9 10 import org.junit.Assert; 11 import org.openqa.selenium.By; 12 import org.openqa.selenium.WebDriver; 13 import org.openqa.selenium.WebElement; 14 import org.openqa.selenium.chrome.ChromeDriver; 15 import org.openqa.selenium.support.ui.ExpectedConditions; 16 import org.openqa.selenium.support.ui.WebDriverWait; 17 18 public class BaiduSearchStepfs { 19 private WebDriver driver; 20 21 @Given("^Go to baidu home$") 22 public void go_to_baidu_home() throws Exception { 23 driver = new ChromeDriver(); 24 driver.manage().window().maximize(); 25 driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); 26 driver.get("http://www.baidu.com/"); 27 } 28 29 @When("^I find baidu logo") 30 public WebElement i_find_baidu_logo() { 31 WebDriverWait wait = new WebDriverWait(driver, 10); 32 WebElement element = wait 33 .until(ExpectedConditions.visibilityOf(driver.findElement(By.xpath("//div[@id='lg']/img")))); 34 return element; 35 } 36 37 @And("^Type the search text \"([^\"]*)\"$") 38 public void type_the_search_text(String searchText) throws Throwable { 39 driver.findElement(By.id("kw")).clear(); 40 driver.findElement(By.id("kw")).sendKeys(searchText); 41 } 42 43 @And("^Click the submit$") 44 public void click_the_submit() { 45 driver.findElement(By.id("su")).click(); 46 } 47 48 @Then("^Wait the query result") 49 public void wait_the_query_result() throws InterruptedException { 50 Thread.sleep(10000); 51 Assert.assertEquals("selenium_百度搜索", driver.getTitle()); 52 driver.close(); 53 driver.quit(); 54 } 55 }