selenium - 页面对象模型链接是否与 Cucumber 的 Gherkin 兼容?

标签 selenium cucumber specflow gherkin pageobjects

使用测试自动化的页面对象模型,我们将页面链接在一起,如下所示:

WebDriver driver = new WebDriver()
HomePage homePage = new HomePage(driver);
LoginPage loginPage = homePage.GoToLoginPage();
WelcomePage welcomePage = loginPage.Login();
etc
etc

这样做的最大好处是,如果开发人员更改主页使其不再链接到登录页面,我可以更新我的主页类并在运行测试之前查看我需要更新的所有测试(有错误)。

然而,对于 Gherkin,上面的每一行将形成一个单独的“步骤”,因此是一个单独的方法。因此,如何进行这种链接?

将页面对象类的实例(例如 homePage、loginPage 等)放入交叉小 cucumber 语句持久存储(例如,像 specflow POCO 或“World”)的唯一方法是什么?

最佳答案

在对该主题进行了多次讨论之后,一个同样合理的替代方案是在将页面对象模式与小 cucumber 一起使用时不返回新页面的实例。您将失去通常使用 POM 获得的链接的好处,但可以说代码会更好地阅读并且不那么复杂。发布这个替代答案,作为测试社区,我们可以投票选择哪种方法是人们的偏好。

关于selenium - 页面对象模型链接是否与 Cucumber 的 Gherkin 兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26378861/

相关文章:

Java、Cucumber 和 Selenium : Problems with navigate(). to()

ruby-on-rails - Rake 统计数据和 Cucumber

xpath - 测试自动化框架提供了哪些我使用 Selenium Webdriver 编写脚本的方法没有提供的功能?

c# - 如何在 visual studio 之外运行 SpecFlow 测试

java - 想要识别具有 JSP core<c :if> tag using selenium webdriver using xpath or any other locators 的元素

node.js - 元素存在后如何运行 selenium webdriver 代码

selenium - 在 :all hook 之前带有 rspec 的 capybara / Selenium

java - selenium 无法获取 URL?

selenium - NUnit Specflow 如何为所有测试共享一个类实例

unit-testing - Specflow - 有没有办法管理背景,使其仅针对功能中的某些场景运行?