Ruby on rails 使用Rails中的Mechanize,根据单元格中的值查找链接并对其执行操作

Ruby on rails 使用Rails中的Mechanize,根据单元格中的值查找链接并对其执行操作,ruby-on-rails,nokogiri,mechanize-ruby,Ruby On Rails,Nokogiri,Mechanize Ruby,我试图对HTML表中特定行中的链接进行操作 该表有一列表示日期,一列表示城市名称,用作链接。我需要找到具有特定日期的行,然后依次遍历同一行上下一个单元格中找到的链接 我通过Mechanize从上一页到达目标页(链接到页面是在上一页生成的,因此不可能直接链接),我能够通过以下方式选择所述表格: agent.page.search("//table[@class='calendar']") 但是,在那之后,我不知道如何根据date in date列中的日期选择正确的行,然后依次单击每个链接(当然,

我试图对HTML表中特定行中的链接进行操作

该表有一列表示日期,一列表示城市名称,用作链接。我需要找到具有特定日期的行,然后依次遍历同一行上下一个单元格中找到的链接

我通过Mechanize从上一页到达目标页(链接到页面是在上一页生成的,因此不可能直接链接),我能够通过以下方式选择所述表格:

agent.page.search("//table[@class='calendar']")
但是,在那之后,我不知道如何根据date in date列中的日期选择正确的行,然后依次单击每个链接(当然,在转到下一个城市之前要做一些事情)

编辑

我设法取得了一些进展。如果我硬编码中的日期,我现在可以在正确的行中获得正确单元格的内容。但我不知道如何使用变量来代替硬编码的日期,我还需要找到一种只使用日期的方法,而不将工作日作为文本包含在其中

 agent.page.search("//table[@class='calendar']/tbody/tr/td[@class='date']
    [text()='wed 27.8.2014']/following-sibling::td[1]/ul/li")
下面的HTML示例:

<table class="calendar">
    <tr>
        <th>Date</th>
        <th>City</th>
    </tr>
<tr class="odd">
    <td class="date">thu 28.8.2014</td>
    <td class="city">
        <ul>
            <li><a href="">London</a></li>
            <li><a href="">Paris</a></li>
            <li><a href="">Berlin</a></li>
        </ul>
    </td>
</tr>
<tr class="even">
    <td class="date">wed 27.8.2014</td>
            <td class="city">
        <ul>
            <li><a href="">London</a></li>
            <li><a href="">Paris</a></li>
            <li><a href="">Berlin</a></li>
        </ul>
    </td>
</table> 

日期
城市
2014年8月28日星期四
2014年8月27日星期三

非常感谢您的帮助

通过进一步研究,我自己找到了答案。这个关于Nokogiri中部分匹配的问题和答案帮助很大

下面的代码片段现在对我有效,我可以继续了

date = Date.new(2014,8,27)

agent.page.search("//table[@class='calendar']/tbody/tr/td[@class='date']
[contains(text(),
\"#{date.strftime("%e.%-m.%Y")}\")]/following-sibling::td[1]/ul/li")