【问题标题】:selenium structuring patterns java硒结构模式java
【发布时间】:2014-02-04 07:22:43
【问题描述】:

我对 Selenium 很陌生,但有很好的编码经验

我正在研究非常复杂的 Web 应用程序的自动化。 对于我的测试,我使用的是 junit 框架。

我不希望我的课程扩大到巨大的规模,所以这就是我划分每页自动化的方式。例如。我有主页。从它我可以进入设置、仪表板和许多其他页面。因此,与主页相关的所有修改/功能我都保留在主页类中。然后对于每个下一页我都有另一个类,我在其中创建 webdriver 并将其分配给上一页 webdriver。因此,每个类再次反映了我可以在该特定页面上实现的功能。

假设我有第 4 级页面,我将有一个第 4 级的类,在创建它时将创建第 3 级页面,第 3 级将首先创建第 2 级,依此类推,在某些时候我会得到一直到第一个登录页面。基本上我有一棵树,我的 loginPage 在它的头部。

它工作得很好,在涉及到 junit 之前我没有任何问题。 我喜欢在我的@After 类中关闭浏览器的想法,并且我有不同的页面类。我如何将它们全部弯曲在一起,无论我在测试中创建和使用什么类页面,我的 after 方法是关闭那个浏览器?

谢谢

【问题讨论】:

  • webDriver.quit() 怎么样?
  • 只使用一个 Web 驱动程序(在您的特定 JUnit 测试用例中创建它),而不是为每个页面创建一个 Web 驱动程序,只需在每个页面类中创建可以将驱动程序传递给的方法。
  • 太棒了。谢谢。我没有在我的每个班级中创建 webdriver,而是仅在第一个登录页面上创建,然后我将它传递给我的其他班级。我将更改结构,以便我的第一个主页将该 webdriver 作为参数,然后每次在测试之前创建一个,并且能够在 after 方法中退出它。

标签: java design-patterns selenium junit automation


【解决方案1】:

查找Pagefactory。我有一个相关的帖子here 有一个例子。

【讨论】:

    【解决方案2】:

    最好的方法是在你的所有测试扩展的类中有一个After 方法。例如:

    Class A extends T
    Class B extends T
    
    Class T {
        WebDriver driver;
    
        @After
        public void tearDown() {
            driver.quit();
        }
    }
    

    现在当您的A#testMethod1 完成时,它将从继承的@After 方法执行tearDown()

    此外,就您的页面而言,按照@CeilingGecko 的说明进行操作,并且仅使用 1 个 webdriver 实例。你可以这样做:

    Class A extends T {
        LoginPage loginPage = new LoginPage(driver);
    
        @Test
        public void testMethod1() {
            loginPage.login("username", "password");
        }
    }
    
    Class LoginPage {
        WebDriver driver;
        public LoginPage(WebDriver driver) {
            this.driver = driver;
        }
    
        public void login(String user, String password) {
            // driver.doStuff()
        }
    }
    

    【讨论】:

    • 我有链类 3 扩展 2、2 扩展 1 和 1 扩展 T 具有之后。我正在运行我的测试,它从 3->2->1->T 开始。它因 nullpointexception 而失败,我很快就会找到 :) 问题是为什么 After 没有被执行?
    • 如果没有实际看到代码,我将无法告诉你:(如果你有一个框架来处理你的东西,这可能会有所帮助..试试github.com/ddavison/getting-started-with-selenium..这是一个框架专门用于开始使用 selenium.. 可能会为您提供有关如何创建测试的绝佳实践。在自述文件中,它为您提供了下载链接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多