2016-09-28 3 views
0

私のHTML/ERBは私がこの混乱に通知]チェックボックスf.check_box(:subscribed_to_news)を見つけるのですか、カピバラと私のキュウリのテストをデバッグするこのカピバラは、入力ノードを選択したくない

<fieldset class="row notifications"> 
    <legend> 
     <hr class="dash blue inline"> 
     <%= t :my_notifications %> 
    </legend> 

    <label> 
     <%= f.check_box(:subscribed_to_news) %> 
     <span></span> 
     <span class="checkbox-text"><%= t :accepts_to_receive_news %></span> 
     <br> 
    </label> 
</fieldset> 

のように見えます

page.find('.notifications label')['innerHTML'] 
# => "\n\t\t<input name=\"user[subscribed_to_news]\" type=\"hidden\" value=\"0\"><input type=\"checkbox\" value=\"1\" checked=\"checked\" name=\"user[subscribed_to_news]\" id=\"user_subscribed_to_news\">\n\t\t<span></span>\n\t\t<span class=\"checkbox-text\">blahblahblah</span>\n\t\t<br>\n\t" 

しかし、私は、ネストされた入力を見つけたり、ラベルを選択するID

page.find('.notifications label input') 
# => Capybara::ElementNotFound Exception: Unable to find css ".notifications label input" 
page.find('.notifications label #user_subscribed_to_news') # => Capybara::ElementNotFound Exception: Unable to find css ".notifications label #user_subscribed_to_news" 

でそれらを見つけることができません何らかの理由しかし、動作します

page.find('.notifications label') 
# => #<Capybara::Node::Element tag="label" path="//HTML[1]/BODY[1]/DIV[1]/MAIN[1]/SECTION[1]/FORM[1]/FIELDSET[3]/LABEL[1]"> 

私は間違って何をしていますか?私は気になるチェックボックスをチェックしたいだけです: '(

答えて

0

チェックボックスは、通常のCSS/XPathのを経由して到達不能であることを思わ...

は、私はいくつかのjavascript

page.execute_script(%Q{document.querySelector('#{area} input##{selector}').click()}) 
を使用して逃げました
0

ほとんどの理由は、チェックボックスが実際にCSSによって隠されていて、画像と置き換えられて、異なるブラウザ間で同じチェックボックスのスタイリングができるようにするためです。それ

チェックボックスが古いカピバラを使用して

page.check('user_subscribed_to_news', allow_label_click: true) # you can also set Capybara.automatic_label_click = true to default to this behavior 

または場合を呼び出すことによって隠されているときに、ラベルをクリックする必要があるだろう、それラベルを自分でクリックし

page.find(:label, "blahblahblah").click #match on labels text 

または

持つことができます
page.find(:label, for: 'user_subscribed_to_news').click #match on labels for attribute if set 
関連する問題