在单个页面 Angular 应用程序上重用黄瓜步骤定义

Reusing a cucumber step definition on a single page Angular app

我正在使用带有页面对象 gem 的 watir-webdriver 来为内置于 angular js 中的单个网页应用程序驱动黄瓜测试。

该网站采用多阶段注册流程,每次填写一系列详细信息,然后单击 'next' 按钮。 (当该页面的所有详细信息都完成时启用)

当我尝试重新使用以下步骤定义时出现问题:

And(/^I click next$/) do
 @registration = RegistrationPage.new(@browser)
 @registration.click_next
end

调用页面对象:

class RegistrationPage
  include PageObject

  button(:next, :value => "Next")

  def click_next
   @browser.wait_while { next_element.disabled? }
   next_element.click
  end
end

对于第一部分,正确找到了“下一步”按钮,但是在第二次调用步骤定义时,无法找到该按钮,尽管该按钮已被验证启用并且在其他方​​面相同。

我看到你已经回答了你的问题,但如果向其他人解释它会有所帮助:

问题很可能是每个页面上的下一个按钮都不相同,并且所有下一个按钮始终都在范围内。因此,要单击正确的按钮,您必须使用所需按钮的索引 属性,即索引:1 用于第二页,索引 2 用于第三页上的按钮。