// --- feature file ---
Scenario Outline: click any button other than button1 and display label1
When i click "<buttontype>"
Then i am presented with label1
Examples:
| buttontype |
| button2 |
| button3 |
| button4 |
// --- Page Object ---
public class ButtonsObjects {
public ButtonsObjects(AppiumDriver driver) {
PageFactory.initElements(new AppiumFieldDecorator(driver), this);
}
// ------------------ locators ------------------
@AndroidFindBy(id = "btn1")
public MobileElement button1;
@AndroidFindBy(id = "btn2")
public MobileElement button2;
@AndroidFindBy(id = "btn3")
public MobileElement button3;
@AndroidFindBy(id = "btn4")
public MobileElement button4;
// ------------------ actions ------------------
public void clickButton1() {
button1.click;
}
public void clickButton2() {
button2.click;
}
public void clickButton3() {
button3.click;
}
public void clickButton4() {
button4.click;
}
}
// --- step definition ---
@When("^i click \"([^\"]*)\"$")
public void i_click(String arg0) {
// How do I handle this here?
}
使用一个方法来丰富您的PageObject,该方法将按钮名称作为输入并单击相应的按钮怎么样?
public void clickOnButton(String buttonName) {
// Implement as you wish (if/switch/reflection...)
}
然后在你的cucumber步骤中,你可以依靠以下方法:
@When("i click {string}")
public void i_click(String buttonName) {
pageObject.clickOnButton(buttonName);
}
注意:我在步骤注释中使用了Cucumber表达式,这更容易(从Cucumber5.x开始使用)
步骤定义
我目前有一个项目,里面有一大堆cucumber。特征文件,其中许多场景都被破坏。这些场景用< code>@broken标记,我们通过用< code>-t ~@broken执行cucumber来避免运行它们。不幸的是,当我们检查cucumber输出时,这些场景实际上是不可见的。它们不会显示为通过、失败或跳过。我想要的是在cucumber输出中包含这些场景的计数。它们应该显示为“跳过的”测试,而不是根
真希望有人能帮上忙。 在cucumber的“示例”中是否可以使用两个不同的外部数据文件?如下所示: @play_movie 场景概述:在网站上播放视频 在这个场景中有一个数据文件,但是如果我想在这个场景中使用两个或更多不同的数据文件呢。有可能用cucumber做吗? 我使用Java作为编码语言。 谢谢
在我的cucumber jvm项目中,我希望在不使用场景大纲的情况下,使用相同的数据集执行场景10次(数据在excel中提供)。 有人能指导我如何做到这一点吗?
目前,我创建了一个如下所示的特性文件(在这个示例中,我已经用...删除了数据):
这种方法的优点是,每当我添加一个新模板时,我就不需要更新特性测试。 谢谢