繁体   English   中英

Selenium WebDriver Page对象模型描述

[英]Selenium WebDriver Page object model description

我是Selenium WebDriver自动化的新手。 我正在使用Java编程语言,并开始遵循页面对象模型。 我想知道基本的文件结构,以及如何进行扩展。

实际示例将非常有帮助。 如果任何人都可以共享他们的示例项目,将不胜感激。 谢谢

您可以在以下URL上关注我的答案: 自动化测试框架

我试图以一种非常简单的方式来解释它。

另外,您也可以参考下面的URL进行解释,以供参考。 http://www.guru99.com/page-object-model-pom-page-factory-in-selenium-ultimate-guide.html

以下是一个小型演示,您如何使用Java和Selenium进行页面对象模型的开发。

我创建了两个类。 一类将用于在页面上存储所有Web元素,另一类将用于访问该类的Web元素以执行预期的操作。

注意: 主页是为存储Web元素而创建的类。

public class Homepage {
    private static WebElement element = null;
    public static WebElement Generic_Search(WebDriver driver){

        element = driver.findElement(By.id("searchTerm"));
        return element;
        }

    public static WebElement Generic_Search_Count(WebDriver driver){

        element = driver.findElement(By.xpath("//div[@class='facet-count']/strong"));
        return element;
        }
    public static WebElement Generic_Search_Submit(WebDriver driver){

        element = driver.findElement(By.className("search-submit"));
        return element;
        }
}

注意: Simple_User_Flow类将用于访问主页的Web元素

public class Simple_User_Flow {
    private static WebDriver driver = null;

     public static void main(String[] args) {

    driver = new FirefoxDriver();
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    driver.get("http://materials.springer.com/");
    driver.manage().window().maximize();
    Homepage.Generic_Search(driver).click();
    Homepage.Generic_Search(driver).sendKeys("Mercury");
    Homepage.Generic_Search_Submit(driver).click();
    WebElement Search_Count = Homepage.Generic_Search_Count(driver);
    String Count = Search_Count.getText();
    System.out.println(Count + " Results found for your Search");
    driver.close(); 
}
}

请记住,这是一个非常简单的演示,您可以添加多个类并在您的主类中使用它们。 我们可以根据类的功能或结构流程对其进行分组。

页面对象是一种众所周知的设计模式,已被自动化工程师广泛接受,它为应用程序的每个页面创建单独的类文件,以将所有元素分组为属性,并将其行为/业务功能分组为该类的方法。 但是在为页面创建类时几乎没有问题-尤其是当页面具有更多/不同的元素集/复杂元素(例如网格/日历小部件/ HTML表格等)时。

该类可能包含过多的职责要处理。 应该对其进行重组并分成较小的类。 即,遵循“单一责任”。

在此处查看图像以了解想法。

页面片段

也就是说,创建可重用的页面片段并让主页面对象提供页面片段。

在这里查看更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM