ruby - Watir Webdriver : Iterating table and storing its content in an array

标签 ruby automation watir watir-webdriver

我正在尝试自动化显示在网站上的 block 并通过 CMS 表比较其内容。 问题是我已经设法使出现在 UI 上的 block 自动化,但是当我以管理员身份登录并尝试使用迭代将表的内容保存在一个数组中时,我无法做到这一点。

<table id="nodequeue-dragdrop" class="nodequeue-dragdrop sticky-enabled tabledrag-processed sticky-table">
<thead class="tableHeader-processed">
<tbody>
  <tr class="draggable odd">
    <td>
      <a class="tabledrag-handle" href="#" title="Drag to re-order">
      <a href="/car-news/moscow/new-text-1">New Text 1</a>
    </td>
    <td>
    <td>2012-06-06 10:24</td>
    <td style="display: none;">
    <td>
    <td>
    <td class="position">1</td>
  </tr>
  <tr class="draggable even">
    <td>
      <a class="tabledrag-handle" href="#" title="Drag to re-order">
      <a href="/car-news/new-cars/text-2">Text 2 </a>
    </td>
    <td>
    <td>2012-06-06 10:29</td>
    <td style="display: none;">
    <td>
    <td>
    <td class="position">2</td>
  </tr>
  <tr class="draggable odd">
    <td>
      <a class="tabledrag-handle" href="#" title="Drag to re-order">
      <a href="/car-news/new-cars/this-is-text-3">This is Text 3</a>
    </td>
    <td>
    <td>2012-06-05 12:55</td>
    <td style="display: none;">
    <td>
    <td>
    <td class="position">3</td>
  </tr>

我使用的代码是

@text = Array.new
  x = 1
  y = 0

  until x == 10
    y = x -1

   until y == x
    @text[y] = @browser.table(:id,'nodequeue-dragdrop').tbody.row{x}.cell{1}.link(:href =>/car-news/).text

    puts @text[y]
    y=y+1  
   end

  x=x+1
 end

问题是脚本运行成功,但即使我设置了迭代,脚本也只读取第一个元素并显示它的文本,而不会转到第二个、第三个...等等元素。

最佳答案

Justin 正朝着正确的方向前进,使用 ruby​​ 的内置方法迭代集合。但是考虑一下,如果我没看错你的代码,你就知道你在寻找来自特定链接的文本,那么既然你可以收集匹配的链接,为什么还要遍历这些行呢?

link_text_array = Array.new
@browser.table(:id,'nodequeue-dragdrop').links(:href => /car-news/) do |link|
  link_text_array << link.text
end

关于ruby - Watir Webdriver : Iterating table and storing its content in an array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10929687/

相关文章:

ruby-on-rails - Windows 7 64 位 : Could not find a valid gem 'compass' (>= 0), 这里就是为什么 : Unable to download data from https://rubygems. org/

php - 如何在 PHP 中自动开始下载?

dom - HTML xpath 树转储?使用 Ruby Watir

ruby - 如何从下拉列表中选择一个值

ruby-on-rails - 两个值中的一个必须在 rails 中验证!=nil

ruby - 分发用 Ruby on Rails 编写的应用程序

compilation - 为 AutoCAD Lisp 文件构建自动化

基于 Windows GUI 的任务自动化

Rspec 期望 raise_error ObjectDisabledException 抛出 NameError 异常

ruby - 为什么 Ruby 的 select 不返回套接字?