【发布时间】:2014-03-02 09:15:43
【问题描述】:
我正在使用 Capybara 为 Web 应用程序编写测试。我正在尝试使用以下一组选择器在 DOM 中查找节点。
'[ng-repeat="task in taskList.items"]:last-child .editable-select [multiple="multiple"]'
当我通过 Chrome 中的 javascript 控制台将这些选择器传递给 JQuery 时,它们会检索正确的节点。
$('[ng-repeat="task in taskList.items"]:last-child .editable-select [multiple="multiple"]')
=>
[
<select multiple="multiple" ng-options="s.index as s.path for s in files" class="editable-input ng-pristine ng-valid" ng-model="$data">…</select>
]
但是,当我将完全相同的选择器传递给 Capybara 的 find 方法时,我得到了 Element Not Found 异常。
find('[ng-repeat="task in taskList.items"]:last-child .editable-select [multiple="multiple"]')
=>
Capybara::ElementNotFound Exception: Unable to find css "[ng-repeat=\"task in taskList.items\"]:last-child .editable-select [multiple=\"multiple\"]"
如果选择器在 JQuery 中正常工作,为什么它们不能在 Capybara 中工作?如何将我的查询重写为与 Capybara 兼容?
【问题讨论】:
-
如果您对此不满意,请接受@Joe 的回答。我个人认为它比你问的更清楚。
标签: jquery capybara capybara-webkit