0

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

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

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

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

2 回答 2

1

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

browser.select_list(id: 'ddlCompanyName').wait_until { |el| el.include? company }.select
于 2017-12-26T21:04:41.337 回答
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 }
于 2013-09-30T17:54:42.853 回答