有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Selenium Java页面对象模型查询

假设有一个页面,比如http://google.com/AddUser,在这里输入记录的详细信息,然后单击保存。完成此操作后,页面将重定向到

http://google.com/userList

在这里,您可以看到用户列表,包括您刚刚输入的新记录

如果我们按照页面对象模型,输入详细信息和保存记录的方法应该存在于AddUser.java上,验证记录是否实际保存和显示的方法应该存在于UserList.java

如果我们考虑AdvUsand和UsRead是这两个类的对应对象,它将类似于下面的内容:

addUser.enterDetailsSaveRecord();

userList.validateSavedRecord();

所以在我的测试用例中,我需要调用两个独立的方法,一个用于操作,另一个用于验证

AddUser.javaUserList.java都将BasePage.java作为超类。 有没有一种方法可以将两者融合到一个单一的方法中,或者有什么我用了错误的方法,有没有更好的方法

谢谢!


共 (2) 个答案

  1. # 1 楼答案

    我也不认为你的方法有任何错误,不过,我的方法通常是从逻辑上将与应用程序的功能交互与测试功能分开。所以我还是会

    addUser.enterDetailsSaveRecord();
    

    但对于用户列表,我会使用

    UserItem foundUser = userList.findUser(targetUser);
    

    其中UserItem是用户表中的一行。然后,我的测试将验证foundUser是正确的

    虽然这最终会产生更多的代码行,但它会使对象模型干净、简单地对被测对象建模,并在测试本身中找到测试代码

  2. # 2 楼答案

    你的方法是正确的。这些方法应该属于不同的页面。 请将方法更新为:

    public UserList enterDetailsSaveRecord() {
    // your code to save the details
    return new UserList();
    }
    

    因此,您可以将其用作:

    addUser.enterDetailsSaveRecord().validateSavedRecord()