【发布时间】:2017-03-22 23:31:40
【问题描述】:
我们正在使用 Ruby 和 Cucumber 进行自动化。我们有大约 80 个功能文件,1 个包含所有通用步骤的 web_Steps 文件。
我们面临的问题是功能文件中存在所有定位器。因此,如果 html 结构发生变化,那么我们必须更新所有相应文件中的定位器,这非常耗时。例如:
网页步骤:
And /^I fill in "([^"]*)" with "([^"]*)"$/ do |field, value|
fill_in(field, with: value)
end
功能文件:
And I fill in "location" with "Mumbai"
And I fill in "contact_details" with "xxx@gmail.com"
因此,如果定位器“位置”更改为其他内容,那么我们必须更新所有包含定位器“位置”的功能文件
有没有更好的方法来解决这个问题?
【问题讨论】:
-
我不知道我是否真的理解你的问题。但是,如果我这样做:你不能创建一个全局变量
$locator = 'location'吗?所以你只需要改变它,它就会在所有的功能文件中改变。 -
此外,如果您有许多这些可变变量,请创建一个全局哈希并在其中存储带有合适键的定位器。
-
你在使用页面对象吗?如果没有,你应该这样做。
标签: selenium-webdriver automation cucumber capybara bdd