Watir Webdriver - Span 文本无法输出被滚动条 Firefox 40 阻止的所有值

Watir Webdriver - Span text can't be output all values which is blocked by scroll bar Firefox 40

最近正在升级我的watir-webdriver框架工作,目前是Watir-wedbriver0.8.0和Firefox 40。完成后,发现span.text无法输出滚动条不可见的部分。 这是一个例子, 这是一个数据网格,它是一个跨度集合。我想循环datagrid中的所有值并输出它们,但最后只输出可以在一个屏幕上查看的值。如果将windows的解决方案改为滚动条缺失,一屏查看所有值,则全部输出。但是class_name可以正常工作。有人对此有解决方案吗?

代码在这里:

table_row_spans = @browser.get_current_frame_span(header_span_id).spans
table_row_spans.each do |table_cell|
  puts table_cell.text
  puts table_cell.class_name
end

您可以通过列表中最后一个 span 元素的 scrolling into view 来解决它:

browser.execute_script('arguments[0].scrollIntoView();', table_row_spans.last)

或者,对每个匹配的元素执行此操作:

table_row_spans.each do |table_cell|
  browser.execute_script('arguments[0].scrollIntoView();', table_cell)
  puts table_cell.text
  puts table_cell.class_name
end

试试下面的方法 ;) 以下方法将存在于 div(例如网格 div id)中的特定元素滚动到视图中。此方法通过移动滚动条将元素移动到视图中。因此,找到特定滚动条所属的 iv_id 非常重要。 element_to_scroll_to 是其位置将滚动到视图中的实际对象。

def scoll_div_element_into_view(div_id, element_to_scroll_to)
   # Find the x and y coordinate of the element.
   wd_point = element_to_scroll_to.wd.location
   # Scroll to it.
   execute_script('document.getElementById(arguments[0]).scrollTo(arguments[1],arguments[2]);', div_id, wd_point.x, wd_point.y)
end