Рубрики
Без рубрики

Selenium – Разработка фреймворка: Шаблон объекта страницы

Какой фреймворк использовать? Как писать скрипты, хранить объекты в файле… С тегами selenium, java, тестирование, контроль качества.

Как писать скрипты, эффективно хранить объекты?:

Фреймворки: управляемый данными, управляемый ключевыми словами и шаблон объекта страницы Почему POP?

  • простота в обслуживании
  • легкая читаемость скриптов
  • сокращение или устранение дубликатов
  • ре – удобство использования кода
  • надежность

Класс объектов страницы

Создайте класс для каждой страницы: Домашняя страница – все объекты, принадлежащие домашней странице Login – Класс Java(LoginPage) для идентификации объектов на одной странице

public class MaerkischeScholle {

WebDriver driver; 
    //local driver 

public MaerkischeScholle(WebDriver driver) {
         this.driver = driver;
         //driver from where parameter is passed into constructor, is passed to local driver 
    }    

By textFlatAvailability = By.xpath("//*[@id='article-27']"); 

public WebElement TextFlat() {
   return driver.findElement(textFlatAvailability); 
       }
}

Класс Testcase

Создайте класс для тестовых примеров, например. Войдите в систему вызовите Login-Field из Loginpage-Class, чем вы можете воздействовать на Login-Field или получить текст со страницы и распечатать его

package testcases;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.Test;

import objectrepository.MaerkischeScholle;

public class CheckAvailability {

    @Test
    public void CheckText() {

        System.setProperty("webdriver.gecko.driver", "//home//helloworld//Documents//Code//Drivers" + 
                "//geckodriver");
        WebDriver driver = new FirefoxDriver();
        driver.get("https://www.maerkische-scholle.de");

        MaerkischeScholle ms = new MaerkischeScholle(driver); 

        String text = ms.TextFlat().getText();

        System.out.println(text); 

        }

}

Водитель

Webdriver инициируется в классе Testcase

 System.setProperty("webdriver.gecko.driver", "//home//helloworld//Documents//Code//Drivers" + 
                "//geckodriver");
 WebDriver driver = new FirefoxDriver();

Класс тестовых примеров (параметр для нового объекта PageObjectClass)

MaerkischeScholle ms = new MaerkischeScholle(driver); 

а затем передается классу PageObjects в качестве параметра через конструктор. -> -> Класс объектов страницы

WebDriver driver; 
    //local driver 

     public MaerkischeScholle(WebDriver driver) {
         this.driver = driver;
         //driver from where parameter is passed into constructor, is passed to local driver 
    }   

если вы переключитесь на другую страницу, просто создайте новый объект страницы в классе Test cases и передайте драйвер

 HomePage hp = new HomePage(driver); 

PageObjectFactory @findBy

@FindBy(xpath= "//*[@id='article-27']")
WebElement textFlatAvailability; 

public WebElement TextFlat() {
   return textFlatAvailability; 
  }

Оригинал: “https://dev.to/annequinkenstein/selenium-design-a-framework-page-object-pattern-4g55”