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

问题描述 投票:0回答:2

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

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

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

def enterCompany(company)
    @browser.select_list(:id, "ddlCompanyName").select(company)
end
watir-webdriver
2个回答
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 }

1
投票

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

browser.select_list(id: 'ddlCompanyName').wait_until { |el| el.include? company }.select
© www.soinside.com 2019 - 2024. All rights reserved.