无法运行黄瓜文件的场景大纲示例

时间:2018-02-10 21:22:07

标签: java selenium cucumber

我正在吃黄瓜。在尝试执行黄瓜场景大纲时,我遇到了错误。以下是黄瓜特征文件

Feature: to test pages titles    
Scenario Outline: to check title of the mutliple pages
Given Open the browser
When navigate to <Link> page
Then check <Title> of the page
Then close the browser

Examples: 
  | Link                     | Title                  |
  | https://cucumber.io/     | Cucumber               |
  | https://cucumber.io/docs | Documentation·Cucumber |
  | https://cucumber.io/blog | Blog·Cucumber          |

以下是黄瓜文件的步骤定义

import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;

public class scenario_outline_sd 
{
static WebDriver driver;
@Given("^Open the browser$")
public void open_the_browser() throws Throwable 
{
    System.setProperty("webdriver.chrome.driver", "E:\\selenium bwosers\\chrome 2.35\\chromedriver.exe");
    WebDriver driver = new ChromeDriver();
}

@When("^navigate to \"([^\"]*)\" page$")
public void navigate_to_page(String page) throws Throwable 
{
    driver.get(page);
    driver.manage().window().maximize();
    driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
}

@Then("^check \"([^\"]*)\" of the page$")
public void check_title_of_the_page(String title) throws Throwable 
{
    if(driver.getTitle().equalsIgnoreCase(title))
    {
        System.out.println("Verified title of : "+title);
    }
}

@Then("^close the browser$")
public void close_the_browser() throws Throwable 
{
    driver.close();
    driver.quit();
}

}

在运行cuucmber功能文件时,它打开浏览器3次但没有取URL的参数。请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

因为您在步骤定义中给出了错误regexp。

功能步骤中的步骤参数没有双重配额:

enter image description here

但是你在步骤定义中使用regexp中的双重配额:

enter image description here

删除\",如下所示

@When("^navigate to ([^\"]*) page$")
public void navigate_to_page(String page) throws Throwable 
{
    System.out.println(page);
    driver.get(page);
    driver.manage().window().maximize();
    driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
}

@Then("^check ([^\"]*) of the page$")
public void check_title_of_the_page(String title) throws Throwable 
{
    System.out.println(title);
    if(driver.getTitle().equalsIgnoreCase(title))
    {
        System.out.println("Verified title of : "+title);
    }
}

我可以使用以下练习代码在我的本地运行:
功能文件:
enter image description here

步骤定义并运行结果:
enter image description here