如何延迟从下拉列表中选择直到填充?

时间:2013-09-30 17:38:27

标签: watir-webdriver

我正在使用Watir WebDriver。我是红宝石的新手。

以下下拉列表始终存在。它失败,除非我在sleep(1)之前。开发人员表示,在设置之前的控件之前,不会填充下拉列表。

我需要哪个等待命令?我想在Selenium中我等到列表的隐藏内容包含我想要的值,然后我选择了该值。

def enterCompany(company)
    @browser.select_list(:id, "ddlCompanyName").select(company)
end

2 个答案:

答案 0 :(得分:1)

我刚刚离线询问了这个问题,所以我想为最新的Watir版本提供一个更新的答案,避免使用已弃用的#when_present方法:

browser.select_list(id: 'ddlCompanyName').wait_until { |el| el.include? company }.select

答案 1 :(得分:0)

您可以使用when_present等待选项出现,然后再选择它。基本上,Watir将等待最多30秒才能显示该选项。如果它出现的时间早于30秒,它将继续进行动作(即选择)。否则,抛出超时异常。

@browser.select_list(:id, "ddlCompanyName").option(:text => company).when_present.select

请注意,上述内容假定company是选项的文本。

另一种选择是等待下拉列表中显示任何内容。

@browser.wait_until{  @browser.select_list(:id, "ddlCompanyName").options.length > 0 }