【发布时间】:2011-12-21 07:44:44
【问题描述】:
当您对页面对象进行建模时,您将如何处理包含表单和大约 50 个输入字段的页面?这里的最佳做法是什么?
您会创建一个页面对象并为每个输入操作编写一个单独的函数吗?或者你会写一个函数,将参数传递给它并输入文本?
例如
public void enterFirstName(String firstName) {
driver.type("firstNameField", firstName);
}
public void enterSecondName(String secondName) {
driver.type("secondNameField", secondName);
}
或
public void fillInForm(String inputFieldName, String text) {
driver.type(inputFieldName, text);
}
我可以在第一个模型中看到,在编写测试时,测试更具描述性,但是如果页面包含太多输入字段,创建页面对象变得很麻烦。
这篇文章在页面对象中构建硒测试也很有趣 Functional Automated Testing Best Practices with Selenium WebDriver
【问题讨论】:
-
查看my stackoverflow question 以了解我将如何使用页面对象设计模式的示例。我自己不是 100% 自己,但通过大量阅读,我确信我的思路是正确的,希望我粘贴的内容对您有所帮助。
-
您可以将所有相似的 WebElement 类型放入一个列表中。所以,如果你有 40 个文本字段,你可以从列表中一一绘制,获取“name”或“id”来识别它,然后对其进行操作。
-
在设计页面对象时遵循单一职责原则 - 您将获得可读性和可靠的测试 - 更多信息:testautomationguru.com/arquillian-graphene-page-fragments
标签: java object selenium webdriver pageobjects