我继承了一个测试自动化套件,在修改它时,我正在尝试编写一个函数来测试相同的链接,这些链接存在于同一个网页中,但是在不同的div中,标签ID是动态的。
我在下面定义了一个函数,它接受一个HTML元素并向元素
发送一个动作 def element_do(html_element, html_element_type, html_element_value, action)
@browser.send(html_element.to_sym,html_element_type.to_sym ,html_element_value).send(action)
end
我有一个定义为somemethod的方法,我试图使用some_element#{i}调用特定div中的方法,如下所示
def multiple_accounts
@num_accts.each do |i|
p "validating for account #{i}"
@page.element_do(:div,:id,"some_element#{i}",somemethod)
end
我面临的问题是,在第二次迭代时,action参数将作为null
而不是somemethod
传递。我是ruby自动化的新手,我不确定到底发生了什么。任何帮助表示赞赏
其他详细信息 - 基于问题 1)@num_accts是一个通过扫描网页文本并包含帐号来获得的数组(例如:[56544,87990])
2)这构成了div的id的一部分,如" acct#56544"。所以我将数组元素从num_accts传递给" acct#{i}"被称为“some_element'
3)' Somemethod'是一种定义为单击div中特定链接的方法,并验证文本以确认链接重定向到正确的页面。当只有一个div时,某些方法可以正常工作。
答案 0 :(得分:0)
这个问题并不明显,但我怀疑你试图传递方法的名称(返回null
),而是调用方法。我想你的电话应该是:
@page.element_do(:div,:id,"some_element#{i}",'somemethod')