首页 > 解决方案 > Cucumber中不同页面对象的常用方法

问题描述

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

有没有人致力于创建可用于黄瓜中不同页面对象的通用方法。

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

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

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

有人努力实现这一目标吗?

标签: cucumbercucumber-jvmcucumber-java

解决方案


它完全取决于您要设置的项目框架。

是的,有可能

例子:

页面对象类:

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

普通类

public static void Customclick(WebElement e) {
     e.click();
}

步骤定义类

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

         CommonClass.Customclick(PageOjectclass.button_submit());

}

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


推荐阅读