使用watir和ruby通过索引选择值
我有这样的代码:使用watir和ruby通过索引选择值,ruby,watir,Ruby,Watir,我有这样的代码: total_terms = @driver.select_list(:name => 'ctl00$cp$cbRodzajUslugi').length if (1...5).include?(total_terms) @driver.select_list(:name => 'ctl00$cp$cbRodzajUslugi').option(:index, total_terms).select else @driver.s
total_terms = @driver.select_list(:name => 'ctl00$cp$cbRodzajUslugi').length
if (1...5).include?(total_terms)
@driver.select_list(:name => 'ctl00$cp$cbRodzajUslugi').option(:index, total_terms).select
else
@driver.select_list(:name => 'ctl00$cp$cbRodzajUslugi').option(:index, (total_terms-2)).select
end
我试图通过索引选择一些值。首先,我计算我的
select\u list
的长度,然后选择。但在浏览器中,我看到没有选择任何内容。我做错了什么?您的代码可能正在抛出异常
选择列表没有方法长度
线路
@driver.select_list(:name => 'ctl00$cp$cbRodzajUslugi').length
无效,因为选择列表没有方法length
。假设您需要选项的数量,则需要添加options
方法以获取选择列表中的选项集合:
@driver.select_list(:name => 'ctl00$cp$cbRodzajUslugi').options.length
5个或更少的选项选择不存在的选项
线路
if (1...5).include?(total_terms)
@driver.select_list(:name => 'ctl00$cp$cbRodzajUslugi').option(:index, total_terms).select
由于指定索引中没有任何内容,将引发异常。:index locator是基于0的-即0表示第一个选项,1表示第二个选项,等等。这意味着当有两个选项时,您将尝试选择:index=>2,该选项不存在。您需要减去1:
if (1...5).include?(total_terms)
@driver.select_list(:name => 'ctl00$cp$cbRodzajUslugi').option(:index, total_terms-1).select