【问题标题】:Get attribute value in Capybara在 Capybara 中获取属性值
【发布时间】:2016-09-20 00:07:40
【问题描述】:

我有一个看起来像这样的 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']

我该如何进行这项工作?

【问题讨论】:

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


【解决方案1】:

您可以检查您的 xpath 是否返回一个值。您用作示例的 xpath 有多个语法错误。试试这个吧:

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

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

<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>

【讨论】:

  • 感谢迈克尔的精彩解释。有效。正如你提到的,我错过了代码中的 input[] 标签。引号,我打错了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-15
  • 2016-03-04
  • 1970-01-01
  • 2020-01-22
  • 1970-01-01
  • 2011-11-10
相关资源
最近更新 更多