场景大纲-我试图在文本框上添加多个值,但每次都打开一个新页面,然后添加



这是一个网站:https://todomvc.com/examples/angular2/这是我的课:

public class TodoTests {

WebDriver driver;

//PropertyFileReader object = new PropertyFileReader();
@Before()
public void setup() {
System.setProperty("webdriver.chrome.driver", "C:\Ketaki_264\ChromeDriver\chromedriver_win32\chromedriver.exe");
driver=new ChromeDriver();  

}
@Given("^Open Firefox and start application$")
public void Open_Firefox_and_start_application() throws Throwable {

driver.manage().window().maximize();
//driver.get("https://todomvc.com/examples/angular2/");

}
@When("^User click on valid link$")
public void User_click_on_valid_link() throws Throwable {
//Properties property= object.getProperty();
//driver.get(property.getProperty("browser.baseURL"));
driver.get("https://todomvc.com/examples/angular2/");


}
@SuppressWarnings("deprecation")
@Then("^I should be able to get into and see Todos as a header$")
public void I_should_be_able_to_get_into_and_see_Todos_as_a_header() throws Throwable {
String title=driver.getCurrentUrl();
System.out.println("My Url is" + title );
assertEquals(title, "https://todomvc.com/examples/angular2/");

}

@Given("^User on home page$")
public void User_on_home_page() throws Throwable {
User_click_on_valid_link();
Thread.sleep(1000);
}
@When("^Enter valid \"([^\"]*)\"")
public void Enter_valid_value_on_empty_text_box_and_Hit_Enter_button(final String Value ) throws Throwable {
Thread.sleep(1000);
driver.findElement(By.xpath("//input[@placeholder='What needs to be done?']")).sendKeys(Value);
Thread.sleep(1000);
}
@Then("^Value should get added in the TODO box$")
public void Value_should_get_added_in_the_TODO_box() throws Throwable {
System.out.println("Hello");
Thread.sleep(1000);
driver.findElement(By.xpath("//input[@placeholder='What needs to be done?']")).sendKeys(Keys.ENTER);
Thread.sleep(2000);
}

我的功能文件:

Scenario Outline: Check if user is able to enter into text box
Given User on home page
When Enter valid <Value> on empty text box and Hit Enter button
Then Value should get added in the TODO box 

Examples:
| Value       |
| ket         |
| Call        |
| doyourworks |

每次打开新页面,然后添加值,相反,我希望它保持在同一页面上,并且应该添加值。。

谁能告诉我哪里出了问题吗。。我是新手,正在努力学习:(

场景大纲是一种使用不同值多次运行同一场景的方法。因此,对于examples表中的每一行,都将运行该场景的一个新实例。

如果你想在一个场景中添加多个值,你需要放弃场景大纲,写一些类似的东西

Given ...
When I add some todo's
Then some todo's should be added

因此,您只需一个步骤即可添加多个TODO的

恶魔战士正在为您指明正确的方向。场景大纲不是合适的工具。场景大纲基本上是一个场景的模板,对examples表中的每一行执行一次。相反,将该表直接添加到When步骤中,但需要重新措辞:

When the user enters the following values:
| Value       |
| ket         |
| Call        |
| doyourworks |

您的步骤定义将收到一个DataTable参数。

请参阅https://cucumber.io/docs/gherkin/reference/#data-表获取更多信息。

最新更新