0
试图做一个动态测试套件并重新使用函数定义。我有一个表单,您可以选择不同类型的联系方式,然后根据联系方式显示不同的页面。我试图做ruby动态函数调用
When /^I click the (.*) return type$/ do |response|
on_page(ContactUsPage).response unless @browser.url.include?("contactBy=#{response}")
这除非网址包括“contactBy =”和响应类型(意味着你已经在页面上并没有链接会将当前响应的类型,并点击链接点击)
我有一个页面对象类(ContactUsPage),其具有不同的方法链接(电子邮件,电话,传真,邮政)
我遇到的问题是与ContactUsPage.response
响应越来越注入进入浏览器检查,但它正在寻找ContactUsPage内的方法“响应”,而不是注入方法。
该方法应调用ContactUsPage.email
或ContactUsPage.fax
或ContactUsPage.phone
,具体取决于传递给函数的方法。
可以:例如,如果你想调用变量名称(
email_element
或类似的),你只需要做一个快速的字符串插值开始的方法foo.send(:bar, "baz")
相当于foo.bar("baz")
您在使用_element属性时使用此方法? on_page(ContactUsPage).send(response)_element.exists?.should be_true在(响应)“预计行结束”之后给我一个错误 –
是的,那是无效的Ruby语法。 'send'需要你期望它调用的方法的全名。请参阅我编辑的答案,了解正确的方法。 –
我不认为你理解_element部分。 _element是一个由页面对象给你的函数。例如:链接(:电子邮件,x)。如果你使用电子邮件,你会得到x的值,email_element返回页面中的元素 –