框架是关键字驱动和数据驱动时,如何根据页面实现selenium中的关键字方法

how to implement the key words methods in selenium according to page when framework is keyword driven and data driven

我正在使用一个框架,该框架由 selenium 中的关键字驱动和数据驱动。 问题是整个应用程序的所有方法或操作都写在一个 class 中,它变得非常冗长且像意大利面条一样令人困惑。 我想像页面对象模型一样以页面方式实现所有方法或操作,但我也希望它是数据驱动和关键字驱动的。

有什么建议吗??

@布莱恩奥克利 你的评论让我更加努力地思考这帮助我找到了解决方案。

returnedStatus = runReflectionMethod("com.dmainc.ptes.test.setup.KeyWord", methodName, paramListObject);
               resultSet.add(returnedStatus);
               excelSheet.setCellData(filePath, sheetName, "Result", row + 1, returnedStatus);

所以如果**runReflectionMethod("com.dmainc.ptes.test.setup.KeyWord", methodName, paramListObject);**

com.dmainc.ptes.test.setup.KeyWord 这部分需要是可变的,而不是现在的常量。 因此,如果我将其设为变量并创建各种 classes 页面,其中将包含相应的 methods/action 然后我可以在这段代码中传递所需的 class 名称。我的问题将是解决了 。 所有 methods/actions 都将进入各自的 classes 并且没有代码膨胀。

由于您的框架是关键字和数据驱动的,因此它应该支持关键字映射,例如Robot framework:

a dictionary mapping all library names to instances

这意味着您不必太担心

的重构

all the methods or actions for entire application is written in one single class

这是臃肿的典型例子 - Large Class。那里有很多资源,但建议从 开始 重构为模式 sourcemaking