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

Common methods for different page objects in Cucumber

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

是否有人致力于创建可在 cucumber 中跨不同页面对象使用的通用方法。

示例:单击方法。 我在功能文件中指定页面对象(然后单击对象 o)。 这又调用步骤定义。在步骤定义中,我们为 click (object o.click())

编写了一个通用方法

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

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

有人致力于实现这一目标吗?

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

有可能

示例:

页面项目类:

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();
}

StepDefinationClass

@When("^testing$")
public void test() throws Throwable {

         CommonClass.Customclick(PageOjectclass.button_submit());

}

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