Ruby each.with_index(1)返回错误:没有给出块(yield)

时间:2017-01-05 23:40:33

标签: ruby cucumber page-object-gem

尝试迭代表行,跳过第一行。使用Ruby,Cucumber和Page-object gem。

PAGE_CLASS

  table(:table_data, id: 'list')

STEP定义

@current_page.table_data_element.each.with_index(1) do |row|
  puts row.value
end

收到错误消息:LocalJumpError: no block given (yield)

3 个答案:

答案 0 :(得分:1)

试试这个

array.drop(1).each do |row|
  ...
end

这是如何运作的?

  • drop跳过n个元素,这不会修改原始数组
  • each枚举所有剩余元素

答案 1 :(得分:1)

在不修改数组的情况下执行此操作的简洁方法是:

array[1..-1].each { |row| }

array [1 ..- 1]指定数组中的一系列索引,从索引1开始(因为0将是数组中第一个元素的索引)并进入最后一个索引(-1)

编辑:OP已更新返回的信息不是数组,以下语法应该如问题所示:

@current_page.table_data_element.each.with_index(1) do |row, index|
  puts row.value
end

答案 2 :(得分:1)

这段代码对我有用。

   @current_page.table_data_element.each do |row|
      if row.text == ''
        next
      else
        row.link_element(text: 'Edit').visible?
      end
    end