验证 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。我试过 RAutomation、send_keys,似乎没有任何效果。我不确定为什么 ths.collect
方法不会 return 所有值而不考虑可见性。
滚动 window 的实现方式将影响是否将文本检测为可见。比如有些scrollwindows设置溢出文字隐藏,会导致Selenium/Watir看不到文字。我相信这是我 运行 进入其中的一些 DevExtreme 控件。
如果 th
元素中没有标签,最简单的解决方案是改为收集内部 HTML。这将允许您绕过可见性检查:
headers = header_row.ths.collect { |th| th.inner_html }
所以我试图从页面上抓取一行 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。我试过 RAutomation、send_keys,似乎没有任何效果。我不确定为什么 ths.collect
方法不会 return 所有值而不考虑可见性。
滚动 window 的实现方式将影响是否将文本检测为可见。比如有些scrollwindows设置溢出文字隐藏,会导致Selenium/Watir看不到文字。我相信这是我 运行 进入其中的一些 DevExtreme 控件。
如果 th
元素中没有标签,最简单的解决方案是改为收集内部 HTML。这将允许您绕过可见性检查:
headers = header_row.ths.collect { |th| th.inner_html }