Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby watir webdriver打印列表项的计数_Ruby_Rspec_Webdriver_Watir - Fatal编程技术网

Ruby watir webdriver打印列表项的计数

Ruby watir webdriver打印列表项的计数,ruby,rspec,webdriver,watir,Ruby,Rspec,Webdriver,Watir,我正在尝试获取网页中列表项的计数并输出以下内容: office_lists = browser_driver.li(:class, 'office') office_list = browser_driver.li(:class, 'office') office_list = Hash.new 0 office_list.links.each do |link| office_list[link] += 1 puts office_list 但我一直不成功。我希望有人能。说这些都是

我正在尝试获取网页中列表项的计数并输出以下内容:

office_lists = browser_driver.li(:class, 'office')
office_list = browser_driver.li(:class, 'office')

office_list = Hash.new 0
office_list.links.each do |link|
  office_list[link] += 1
  puts office_list
但我一直不成功。我希望有人能。说这些都是我在页面上的李

<li class=‘office’></li>
<li class=‘office’></li>
<li class=‘office’></li>
<li class=‘office’></li>
<li class=‘office’></li>
<li class=‘office’></li>
任何帮助都将不胜感激。
另外,我是否需要pp或p或其他任何东西,或者watir是否足以完成此任务?

您可以使用内置方法,而不是滚动您自己的方法,该方法返回li元素的集合

下面是一个示例,该示例使用office的class属性收集li元素,然后将Array::count链起来以返回集合中的元素数:

名为foo.rb的本地文件中的HTML:


您正在覆盖您首先声明的内容

比如,

office_lists = browser_driver.li(:class, 'office')
office_list = browser_driver.li(:class, 'office')

office_list = Hash.new 0
您正在用哈希替换office\u列表,以便您的浏览器\u驱动程序。李:office\u列表中将不再提供类“office”

我不明白你是想计算一个特定列表下的链接,还是想计算列表的总数

如果您想计算特定列表下的链接数,请编写以下代码

p browser.li(:class, 'office').links.count
上面一行将打印该列表下的链接数

如果要计算列表的总数,请编写以下代码

count= browser.lis(:class, 'office').count #its `lis` not `li`
puts "There are #{count} number of offices in the list"
office_lists = browser_driver.li(:class, 'office')
office_list = browser_driver.li(:class, 'office')

office_list = Hash.new 0
p browser.li(:class, 'office').links.count
count= browser.lis(:class, 'office').count #its `lis` not `li`
puts "There are #{count} number of offices in the list"