![](/img/trans.png)
[英]Java Selenium - page object model - webdriver null pointer exception error
[英]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.