2017-01-10 2 views
0

Я пытаюсь написать простую спецификацию функции, но я не понимаю поведения Capybara. Итак, у меня есть этот код:Почему Capybara не может найти css?

> parent.class 
=> Capybara::Node::Element 
> parent.find(:css, 'button.remove-arrow') 
=> Capybara::ElementNotFound: Unable to find css "button.remove-arrow" 
from /Users/weare138/.rvm/gems/ruby-2.3.3/gems/capybara-2.11.0/lib/capybara/node/finders.rb:44:in `block in find' 

, но когда я пытаюсь сделать позвонить через веб-драйвера:

> parent.native.find(:css, 'button.remove-arrow') 

это вернуть меня правильно ответить

=> [#<Capybara::Poltergeist::Node tag="button" path="//HTML[1]/BODY[1]/DIV[1]/SECTION[1]/DIV[1]/FORM[1]/DIV[2]/DIV[2]/DIV[1]/DIV[2]/DIV[1]/DIV[1]/DIV[1]/DIV[1]/DIV[1]/DIV[1]/BUTTON[1]">] 

что я делаю не так?

ответ

2

Наиболее вероятная причина в том, что узел на самом деле не отображается на странице, которую Capybara принимает во внимание, но у водителя нет. Если

parent.find(:css, 'button.remove-arrow', visible: :false) 

находит элемент, который подтверждает, что видимость действительно является разницей. Если нет, то фактический HTML/CSS понадобится, чтобы знать, почему.

+0

lemme check Thomas –

+0

ha! Я снова получил странные вещи, теперь проходят испытания lol –

+0

спасибо Thomas: D –

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