获取Capybara中的属性值

时间:2016-05-23 07:49:48

标签: html ruby-on-rails ruby xpath capybara

我的HTML部分看起来像这样:

<input id="order_date" name="order_date" class="date-applied"
 onchange="restoreDate=false;" type="text" value="01/05/2016" 
 size="12" maxlength="10"/>

我需要使用Capybara检索属性value的值。我尝试过使用此代码,但没有成功:

find(:xpath,"//table[2']/tbody/tr[7]/td[@name='order_date]")['value']

我如何使这项工作?

1 个答案:

答案 0 :(得分:2)

您可能会检查xpath是否返回值。您用作示例的xpath有多个语法错误。试试这个,而不是:

find(:xpath, "//table[2]/tbody/tr[7]/td/input[@name="order_date"]")['value']

我根据您正在搜索的内容创建了一个结构正确的测试文档。上面的xpath在本文档中找到了输入元素:

<document>
    <table></table>
    <table>
        <tbody>
            <tr></tr>
            <tr></tr>
            <tr></tr>
            <tr></tr>
            <tr></tr>
            <tr></tr>
            <tr>
                <td>
                    <input id="order_date" name="order_date" class="date-applied"
                     onchange="restoreDate=false;" type="text" value="01/05/2016" 
                     size="12" maxlength="10"/>
                </td>
            </tr>
        </tbody>
    </table>
</document>