2016-04-08 2 views
1

Я пишу тест capybara в rspec, где я пытаюсь найти счет элемента с его атрибутом, имеющим определенное значение. Мой DOM имеет следующий элемент:Capybara :: ElementNotFound using 'find_field'

<svg version="1.1" id="some_id" x="0px" y="0px" viewBox="0 0 2 2" enable-background="previous 0 0 2 2"> 
<svg version="1.1" id="some_id" x="0px" y="0px" viewBox="0 0 2 2" enable-background="previous 0 0 2 2"> 
<svg version="1.1" id="some_id" x="0px" y="0px" viewBox="0 0 5 7" enable-background="Hello 0 0 5 7"> 

Я хочу, чтобы найти количество элемента, имеющего включения-фоновое значение как «предыдущий 0 0 2 2» или, может быть, значение Viewbox как «0 0 2 2». Я попытался следующие:

expect(find_field("enable-background", {with: "previous 0 0 2 2"}).count).to eq(2) 

Ошибка я получаю: Capybara::ElementNotFound: Unable to find field "enable-background" with value "previous 0 0 2 2"

Что я здесь делаю неправильно?

ответ

0

я понял это - expect(find_all('svg[viewBox="0 0 2 2"]').count).to eq(2)

+0

Если вы хотите знать количество, то find_all/все правильно, если с другой стороны, вы хотите, чтобы проверить количество является определенное число, как ваш ответ делает, вы должны написать это как «ожидать (страница) .to have_selector ('svg [viewBox =" 0 0 2 2 "]', count: 2)' - что уменьшит потенциальную шелушатость тестов, позволяя Capybara использовать свое поведение ожидания –

Смежные вопросы