Ruby 如何将散列值传递到注册表中的字段中?

Ruby 如何将散列值传递到注册表中的字段中?,ruby,cucumber,watir,gherkin,Ruby,Cucumber,Watir,Gherkin,我是自动化测试新手,没有Ruby或任何其他编程语言的经验。然而,我现在的雇主希望我开始自动化小任务。我遇到的问题是,试图将散列值传递到注册表的字段中时 这是我的小黄瓜场景: when语句左侧是我要传递某个值的字段的名称。前两个是输入字段。最后一个散列“age”是一个下拉列表 有没有人能帮我一个ruby方法的例子,根据上面的信息填写这样的注册表 另外,我使用的自动化框架由Ruby、Cucumber和Watir Webdriver组成。以下代码未经测试,但类似的代码应该适合您 # Step def

我是自动化测试新手,没有Ruby或任何其他编程语言的经验。然而,我现在的雇主希望我开始自动化小任务。我遇到的问题是,试图将散列值传递到注册表的字段中时

这是我的小黄瓜场景:

when语句左侧是我要传递某个值的字段的名称。前两个是输入字段。最后一个散列“age”是一个下拉列表

有没有人能帮我一个ruby方法的例子,根据上面的信息填写这样的注册表


另外,我使用的自动化框架由Ruby、Cucumber和Watir Webdriver组成。

以下代码未经测试,但类似的代码应该适合您

# Step definition
Given /^I enter the following credentials$/ do |table|
  # .drop(1) is to get rid of your first row with titles
  table.drop(1).each_pair do |setting, value|
    browser.element(name: setting).to_subtype.set(value) }
  end
end
小心使用小黄瓜作为编码的替代品。它应该专注于你想要达到的目标,而不是你想要达到的方式

我建议如下一种情况:

Given RegularJohn is on the create account page
When he submits the create account form with his information
Then the successfully created message should display
请注意,在您的代码中,您需要
RegularJohn
作为一个配置变量,并填充预期的信息


当您尝试测试失败时,您可以使用不同的变量,如
badeEmailAndy
。通过这种方式,您可以保持其可读性、可维护性和可理解性。

答案将取决于页面HTML以及您是否也在使用页面对象框架。通常,您将迭代每个键值对以查找字段并输入值。例如,如果第一列与元素id匹配,则可以有
data.each_pair{| setting,value | browser.element(id:setting).to_subtype.set(value)}
。虽然理想情况下,您应该有一个页面对象框架,它可以实现像
页面这样简单的功能。用(值)
填充。\u。请添加一些有关您正在处理的网页的信息,以及是否使用页面对象框架?