Cucumber中不同页面对象的常用方法

Cucumber中不同页面对象的常用方法,cucumber,cucumber-jvm,cucumber-java,Cucumber,Cucumber Jvm,Cucumber Java,关于Cucumber中不同页面对象的常用方法的问题 有没有人研究过创建通用方法,可以在cucumber中的不同页面对象之间使用 示例:单击方法。 我在功能文件中指定页面对象(并单击对象o)。 这依次调用步骤定义。在步骤定义中,我们为click编写了一个通用方法(object o.click()) 我们还有一个单独的类,其中定义了所有页面对象(例如:对象o的xpath)。现在的问题是如何将这些页面对象与click方法的公共步骤定义进行集成 如果这是可以实现的,我们只需要为不同的对象(对象o到对象b

关于Cucumber中不同页面对象的常用方法的问题

有没有人研究过创建通用方法,可以在cucumber中的不同页面对象之间使用

示例:单击方法。 我在功能文件中指定页面对象(并单击对象o)。 这依次调用步骤定义。在步骤定义中,我们为click编写了一个通用方法(object o.click())

我们还有一个单独的类,其中定义了所有页面对象(例如:对象o的xpath)。现在的问题是如何将这些页面对象与click方法的公共步骤定义进行集成

如果这是可以实现的,我们只需要为不同的对象(对象o到对象b)更改特征文件中的步骤。单击方法将适用于所有不同的页面对象,我们只需要在公共页面对象类中添加这些对象的xpath


有人为此而努力吗

这完全取决于您要在其中设置的项目框架

是的,这是可能的

例如:

PageOjectclass:

WebDriver driver = null;
private WebElement element = null;
private By By = null;

public PageOjectclass(WebDriver driver) {
    this.driver = driver;
}

public static WebElement button_submit() throws Exception {
    try {
        element = driver.findElement(By.xpath("//h1[@class='txtCenter white ico30']"));
} catch (Exception e) {
    AutomationLog.error("HomePageHeader Element not found");
    throw (e);
}
return element;
}
CommonClass

public static void Customclick(WebElement e) {
     e.click();
}
@When("^testing$")
public void test() throws Throwable {

         CommonClass.Customclick(PageOjectclass.button_submit());

}
StepDefinitionClass

public static void Customclick(WebElement e) {
     e.click();
}
@When("^testing$")
public void test() throws Throwable {

         CommonClass.Customclick(PageOjectclass.button_submit());

}
只需注意传递webdriver初始化的对象,并使用构造函数等传递它们