Общие методы для различных объектов страницы в Cucumber - PullRequest
1 голос
/ 19 октября 2019

Вопрос относительно общих методов для различных объектов страницы в Cucumber

Кто-нибудь работал над созданием общих методов, которые можно использовать для различных объектов страницы в Cucumber.

Пример: метод Click. Я указываю объекты страницы в файле объектов (и я нажимаю на объект o). Это в свою очередь вызывает определение шага. В определении шага мы написали универсальный метод для click (object o.click ())

У нас также есть отдельный класс, в котором определены все объекты страницы (например, xpath объекта o). Теперь вопрос заключается в том, как объединить эти объекты страницы с общим определением шагов метода click.

Если это достижимо, нам нужно только изменить шаги в файле объектов для различных объектов (от объекта o до объекта b). ). Метод одиночного щелчка будет работать для всех различных объектов страницы, нам просто нужно добавить xpath этих объектов в общий класс объектов страницы.

Кто-нибудь работал над достижением этого?

1 Ответ

0 голосов
/ 23 октября 2019

Это полностью зависит от структуры вашего проекта, в которой вы хотите установить.

Да, это возможно

Пример:

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

StepDefinationClass

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

         CommonClass.Customclick(PageOjectclass.button_submit());

}

Просто позаботьтесь о передаче инициализированного объекта веб-драйвера, пасих с конструктором и т. д.

...