验证 Ruby 中 table 的 header 行

Validate header row of table in Ruby

所以我试图从页面上抓取一行 table headers:

 header_row = @page.send('header_row_element')
 headers = header_row.ths.collect { |th| th.text }
  table_of_elements.raw.flatten.each do |option|
    expect(headers).to include option
  end

Note: table_of_elements is coming from a Cucumber Table ie:
   | value         |
   | another value |
   | etc           |

我在页面上找到 header 行并 return 值没有问题,但我的问题是 table 在 滚动 window

所以代码 headers = header_row.ths.collect { |th| th.text } 是 return 一个数组,其中只有 header 位于当前滚动位置的视图内: headers = [ "value", "another value", "", "" ]

我似乎无法处理横向滚动 window 以查看其他 header。我试过 RAutomationsend_keys,似乎没有任何效果。我不确定为什么 ths.collect 方法不会 return 所有值而不考虑可见性。

滚动 window 的实现方式将影响是否将文本检测为可见。比如有些scrollwindows设置溢出文字隐藏,会导致Selenium/Watir看不到文字。我相信这是我 运行 进入其中的一些 DevExtreme 控件。

如果 th 元素中没有标签,最简单的解决方案是改为收集内部 HTML。这将允许您绕过可见性检查:

headers = header_row.ths.collect { |th| th.inner_html }