以下是我的页面文件。在我的步骤定义中,我正在尝试验证" linka"或" linkb"
class PageName
include PageObject
link(:linka, :text => 'texta')
link(:linkb, :text => 'textb')
def is_Available?(element)
return element?
end
end
以下是我认为实现这一目标的方法。在这里,我计划将在我的页面中声明的链接的变量名称作为参数发送。预计会在控制台上打印 true 。
Then(/^I verify availability of "(.*?)"$/) do |arg1|
puts on(HomePage).is_Available? arg1
end
面对以下错误
Then I verify availability of "linka" undefined method `element?' for #<HomePage:0x35b2300> (NoMethodError) ./features/support/pages/HomePage_page.rb:12:in `is_Available?' ./features/step_definitions/homepage.rb:8:in `/^I verify availability of " (.*?)"$/' features\HomePage.feature:5:in `Then I verify availability of "reviews"'
我可以知道我哪里出错吗?
建议我做些工作
此致 阿维纳什
答案 0 :(得分:1)
问题是element
方法参数中的is_Available?
与返回的element?
不同。在当前代码中,页面对象正在查找方法element?
,而不是linka?
或linkb?
。
要将字符串转换为方法调用,您可以使用send
:
def is_Available?(element)
return send("#{element}?")
end
此方法:
page.linka?
或page.linkb?
。