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:从2d数组中的每个子数组中获取第n个元素_Ruby_Unit Testing_Watir_Watir Webdriver - Fatal编程技术网

Ruby:从2d数组中的每个子数组中获取第n个元素

Ruby:从2d数组中的每个子数组中获取第n个元素,ruby,unit-testing,watir,watir-webdriver,Ruby,Unit Testing,Watir,Watir Webdriver,作为Watir测试套件的一部分,我们正在验证数据表。 其中一个要求是,除非选择了特定的单选按钮,否则特定列必须为空 在我的脚本中,我有以下代码 incidents = browser.table(:xpath, Xpath_CC).strings 其中browser是watir webdriver浏览器对象 在事件中提供此2d数组的名称 [["DateTime", "Problem", "Value", "Compared", "Number", "Causes", "Where", "Co

作为Watir测试套件的一部分,我们正在验证数据表。 其中一个要求是,除非选择了特定的单选按钮,否则特定列必须为空 在我的脚本中,我有以下代码

incidents = browser.table(:xpath, Xpath_CC).strings 
其中browser是watir webdriver浏览器对象 在事件中提供此2d数组的名称

[["DateTime", "Problem", "Value", "Compared", "Number", "Causes", "Where", "Count", "Type"],
["May 07, 02:15 - 02:30", "Web", "38.46 %", "", "1", "UNKNOWN", "", "1", "J105"],
["May 07, 02:15 - 02:30", "Video", "40 %", "", "1", "UNKNOWN", "", "1", "J105"],
["May 07, 02:00 - 02:15", "Email", "30 %", "", "1", "UNKNOWN", "", "1", "J105"],
["May 07, 01:00 - 01:15", "Email", "70 %", "", "1", "UNKNOWN", "", "1", "J105"],
["May 07, 01:00 - 01:15", "Email", "70 %", "", "1", "UNKNOWN", "", "1", "J105"],
["May 07, 01:00 - 01:15", "Email", "0 %", "", "1", "UNKNOWN", "", "1", "J105"],
]]
我需要做的是检查每个子数组中的每个比较列,并确保它为空。 我可以做类似的事情

 result = true
 incidents.each do |row|
   if (row[3] != '')
    result = false
  end
end
这是我的Java大脑告诉我怎么做。我想这里必须有一种更简单的单行ruby方法来实现这一点

单行:

result = incidents.all? { |row| row[3].empty? }
要跳过标题信息,请执行以下操作:

result = incidents[1..-1].all? { |row| row[3].empty? }
一艘班轮:

result = incidents.all? { |row| row[3].empty? }
要跳过标题信息,请执行以下操作:

result = incidents[1..-1].all? { |row| row[3].empty? }

Oops算出了,类似事件。转置[3][1..-1]。inspect会给出我想要的结果。Oops算出了,类似事件。转置[3][1..-1]。inspect会给出我想要的结果。该解决方案的唯一问题是,如果我这样做,它不会考虑标题信息,我得到了正确的答案Events=Events[1..-1]assertincidents.all?{行{行[3].empty?},一些错误消息该解决方案的唯一问题是它没有考虑标题信息如果我这样做,我会得到正确的答案Events=Events[1..-1]assertincidents.all?{行{行|行[3].empty?},一些错误消息