Я пытаюсь найти методы поиска в Капибаре и не испытываю большой удачи. Я бы ожидал, что вторая находка будет искать текст только в результатах первого поиска. Однако второй поиск ищет весь документ.Цепные находки в Капибаре?
element = page_foo.find('.bar')
element.find('div', :text => "name")
=> All divs with the text "name" on the page.
Раствор с помощью XPath описан здесь:
capybara - Find with xPath is leaving the within scope
Однако, я не слишком хорошо знаком с XPath и надеюсь найти способ работать вокруг него.
Дополнительная информация:
HTML:
<div data-id="tabMeListProducts">
<div class=" title">My BMW 5-SERIES GRAN TURISMO.</div>
</div>
<div data-id="tabMeListPosts">
<div class="name">My BMW 5-SERIES GRAN TURISMO.</div>
</div>
RSpec:
element = page_foo.find('[data-id="tabMeListProducts"]')
=>#<Capybara::Element tag="div">
element.find('div', :text => "My BMW 5-SERIES GRAN TURISMO.")
=>Capybara::Ambiguous: Ambiguous match, found 2 elements matching css "div" with text "My BMW 5-SERIES GRAN TURISMO."
Как видно из приведенного выше примера охват второго ФАЙНД является вся страница, и не содержится в элемент, пройденный начальной находкой.
Я бы ожидал, что поиск будет искать только в div, содержащемся в переменной «element».
Не могли бы вы объяснить: что вы пытаетесь сделать с вашей находкой? Некоторые примеры данных, и какими должны быть результаты, которые вы ожидаете, и каковы результаты, которые вы получаете вместо этого? –
Также: вы считали использование «внутри»? например 'in find ('. bar') {find ('div',: text =>" name ")}' –
Привет, Тарын, я ценю, что вы пытаетесь помочь. Вопрос был обновлен на основе ваших отзывов. – lcharbon