Selenium页面对象(PO )和关键字驱动框架

问题描述 投票:2回答:5

我是Selenium的新手,需要一些建议。

据我所知,在Page Object中,我们必须为每个页面创建一个Java类。在关键字驱动框架中,我们需要创建一个通用模块,该模块基于输入键基于预定义规则执行操作。

我的问题是,当我们实现关键字驱动的框架时,页面对象不再是一个选项吗?关键字驱动的框架和页面对象实现可以共存吗?

selenium frameworks keyword pageobjects data-driven-tests
5个回答
1
投票

是的,他们可以共存。

无论你想测试什么方式,我都把Page Object视为基础。它大大降低了维护成本。

关键字驱动框架是作为更高的抽象层创建的,因此非技术性更容易理解测试用例设计。比如名为login的函数解释它将登录。然后,此登录功能使用页面对象来创建元素调用。

因此,Page Object只是一个较低级别的抽象,可以更轻松地创建测试用例。

http://www.ranorex.com/blog/keyword-driven-test-automation-framework

此链接说明了驱动的关键字。


0
投票

这是在Selenium中实现的示例关键字驱动框架。

http://www.testautomationguru.com/keyword-driven-framework-for-localization-testing-using-selenium-webdriver/

在纯粹的低级关键字驱动框架中使用POM是没有意义的。因为页面的每个元素和相应的操作都将在电子表格中描述。

如果您要使用高级关键字驱动或混合框架,那么您可以使用POM。

混合框架:http://www.testautomationguru.com/hybrid-test-automation-framework/

上面的例子是在QTP中。但你会明白这个想法。

页面对象设计:http://www.testautomationguru.com/arquillian-graphene-page-fragments/


0
投票

关键字驱动将基于类中关键字的抽象而工作。对于简单的示例,单击,输入,按钮,下拉列表,单选按钮,复选框等是关键字,并且必须维护您班级中的各个功能。为了维护这些,他们中的大多数使用excel,csv。

例如:BaseClass包含关键字的所有操作,如public void input(String locatorType,String locatorValue)//这里的locator类型将是xpath,id,name,class,tag和各自的值

问题: - 今天我想用注册和登录,好吧没有问题。我准备好了步骤并成功运行然后明天管理员只想执行登录功能。我们如何管理,您能否重写这些步骤?我可以使用任何测试框架,可能是来自excel输入和testng的歧义!那更好吗?不,因为它很容易看到但很难管理!

现在页面对象模型: - 它不是一个框架,它是一种设计模式或方法。在这里,如果您使用任何测试框架(testng),它很容易维护您的方法/操作。我们可以使用有意义的datadrivern。

因此,基于您的项目和需求,我们必须维护和准备框架并坚持使用该框架。


0
投票

我有关键字驱动,混合和页面对象模型。

页面对象模态:适用于已完成的应用程序。但是如果你正在研究敏捷那么它就不合适..如果定位器一直在变化,每次你都会失败。考虑到你的登录页面上有一个取消按钮,你最不愿意改变在取消。如果定位器发生了变化,那么它将使您在所有测试用例中失败,因为每个测试用例都应该只遇到登录页面/。

混合:关键字+ POM:

这是一个更好的选择。因为您将每个定位器保存在单独的文件中,所以您始终只需查看该测试用例所需的定位器。


0
投票

我不同意声明“如果定位器不断变化,每次你都会失败......”这是真的,如果定位器改变了脚本将无论框架如何都会失败。我们需要使用脚本逻辑处理这个问题,脚本应该足够聪明,可以找到任何定位器的元素。

© www.soinside.com 2019 - 2024. All rights reserved.