当我使用PageObject Ruby gem中的内置-in方法时,我正在为#(NoMethodError)获取未定义的方法`when_visible'。这是我的代码:
class HomePage
include PageObject
links(:search_types, :css => ".search-type")
def select_search_type
search_types_elements.when_visible(timeout=10)
search_types_elements.find { |type| if type.text=='Resort'; type.click; break end }
end
end
有人可以帮忙吗?非常感谢!
答案 0 :(得分:0)
已更新,以反映讨论情况。
page-object gem处理其复数的基本访问器。 Page-object最终生成
search_types_elements = @browser.find_elements(:css, ".search-type")
因此您需要使用(更新)
之类的内容search_types_elements.find { |type|
type.when_visible(timeout=10)
if type.text=='Resort'; type.click; break end
}
您应该向页面类构造函数添加一些内容以等待页面完全加载。不幸的是,没有一种简单的方法可以做到这一点。很大程度上取决于页面细节。我通常首先等待jquery队列的长度为零。像这样:
WebDriverWait(self.selenium, 10).until(lambda s: s.execute_script("return jQuery.active == 0"))