将字符串转换为页面对象中的元素
converting string to element in page object
页面对象 gem 和 ruby,我已经为 link 定义了一些页面对象,例如:
link(:link_for_1week, text: /1 wk/)
link(:link_for_2week, text: /2 wks/)
link(:link_for_3week, text: /3 wks/)
link(:link_for_4week, text: /4 wks/)
link(:link_for_5week, text: /5 wks/)
link(:link_for_6week, text: /6 wks/)
link(:link_for_2months, text: /2 mo/)
link(:link_for_3months, text: /3 mo/)
link(:link_for_6months, text: /6 mo/)
link(:link_for_1year, text: /1 yr/)
我有一种方法可以根据用户输入动态调用这些 link:
If I give user input as '1week' it has to click on 'link_for_1week'
If I give user input as '2week' it has to click on 'link_for_2week'
and so
我不知道该怎么做,我什至使用了 instance_eval,但它不起作用:
def click_link(args:)
self.browser.instance_eval('link_for_'+args+'_element.click')
end
但是我无法点击 link。
我不确定使用这个 instance_eval.. 除了 instance_eval 也很受欢迎...
我没用过那个 gem 但是方法中的参数是错误的。而不是
def click_link(args:)
使用
def click_link(args)
您可以使用 send
将字符串转换为方法调用:
def click_link(text)
send("link_for_#{text}")
end
下面提到的代码将解决您的问题:
("link_for_#{args}_element")
当您需要 write/get 来自任何 ruby 双引号变量的动态值时,请使用“#{variable}”语法。
页面对象 gem 和 ruby,我已经为 link 定义了一些页面对象,例如:
link(:link_for_1week, text: /1 wk/)
link(:link_for_2week, text: /2 wks/)
link(:link_for_3week, text: /3 wks/)
link(:link_for_4week, text: /4 wks/)
link(:link_for_5week, text: /5 wks/)
link(:link_for_6week, text: /6 wks/)
link(:link_for_2months, text: /2 mo/)
link(:link_for_3months, text: /3 mo/)
link(:link_for_6months, text: /6 mo/)
link(:link_for_1year, text: /1 yr/)
我有一种方法可以根据用户输入动态调用这些 link:
If I give user input as '1week' it has to click on 'link_for_1week'
If I give user input as '2week' it has to click on 'link_for_2week'
and so
我不知道该怎么做,我什至使用了 instance_eval,但它不起作用:
def click_link(args:)
self.browser.instance_eval('link_for_'+args+'_element.click')
end
但是我无法点击 link。
我不确定使用这个 instance_eval.. 除了 instance_eval 也很受欢迎...
我没用过那个 gem 但是方法中的参数是错误的。而不是
def click_link(args:)
使用
def click_link(args)
您可以使用 send
将字符串转换为方法调用:
def click_link(text)
send("link_for_#{text}")
end
下面提到的代码将解决您的问题:
("link_for_#{args}_element")
当您需要 write/get 来自任何 ruby 双引号变量的动态值时,请使用“#{variable}”语法。