0
我正在爲使用水豚的網絡應用程序編寫測試。我試着在DOM中使用下面的一組選擇器找到一個節點。爲什麼jQuery和Capybara對css選擇器的解釋不同?
'[ng-repeat="task in taskList.items"]:last-child .editable-select [multiple="multiple"]'
當我將這些選擇器傳遞給JQuery時,通過Chrome中的javascript控制檯,它們檢索正確的節點。
$('[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>
]
當我通過完全相同的選擇器來水豚的find
方法,但是,我得到一個元素未發現異常。
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中正常工作,他們爲什麼不以水豚工作?我怎麼能重寫我的查詢是水豚兼容的?
請接受@喬的回答,如果你不快樂吧。我個人認爲它比你問的更明確。 – jibiel