के लिए बाल तत्वों की सूची मैंने चारों ओर खोज की है और मुझे ऐसा करने का कोई तरीका नहीं मिल रहा है।एक Capybara/Poltergeist तत्व
हम एम्बरजेएस/रेल ऐप पर ककड़ी सुविधाओं में पोल्टरगेस्ट ड्राइवर के साथ कैपिबरा परीक्षण चला रहे हैं। मैं page.driver.debug का उपयोग नहीं कर सकता क्योंकि मैं एक हेडलेस वारंटी उदाहरण के अंदर दौड़ रहा हूं, ताकि समस्या निवारण मेरे लिए उपलब्ध न हो, लेकिन स्क्रीनशॉट काम करते हैं, और प्रश्न में पृष्ठ पर एक क्रोम देव उपकरण का निरीक्षण सही तत्व दिखाता है।
मेरे पास एक ककड़ी परिदृश्य है जो असफल रहा है, और ऐसा इसलिए है क्योंकि खोज काम नहीं कर रहा है। मेरा परीक्षण इस तरह दिखता है:
When(/^I delete description "(.*?)"$/) do |description|
within :css, '#myform' do
first('label', :text => /#{description}/).find(:xpath, '..').find(:css, 'button.delete')
end
end
यह प्रश्न में तत्व नहीं ढूंढ सकता है। यहाँ डोम के प्रासंगिक अनुभाग है:
<form id="myform">
<div class="row-fluid question">
<div class="span12">
<div class="padding">
<div id="ember576" class="ember-view is-viewing-edit-controls">
<button class="delete" data-ember-action="31"></button>
<button class="edit" data-ember-action="32"></button>
<button class="insert_above" data-ember-action="33"></button>
<button class="insert_below" data-ember-action="34"></button>
<button class="move_up" data-ember-action="35"></button>
<button class="move_down" data-ember-action="36"></button>
<label class="question" data-ember-action="37">Enter your first name</label>
<input id="ember577" class="ember-view ember-text-field">
<span class="error"></span>
</div>
</div>
</div>
</div>
</form>
अगर मैं एक binding.pry में जोड़ने के लिए, इस:
=> #<Capybara::Element tag="div">
और यह:
first('label', :text => /#{description}/).find(:xpath, '..')
│
मुझे इस प्रतिक्रिया देता है
first('label', :text => /#{description}/).find(:xpath, '..')
│
मुझे यह प्रतिक्रिया देता है:
=> "Enter your first name"
लेकिन पूर्ण खोज:
first('label', :text => /#{description}/).find(:xpath, '..').find(:css, 'button.delete')
मुझे इस प्रतिक्रिया देता है:
Capybara::ElementNotFound: Unable to find css "button.delete"
मुझे लगता है कि यह एक माता पिता/भाई मुद्दा है है, लेकिन मैं समस्याओं का निवारण नहीं कर सकते यह। तो मुझे लगता है कि मेरे पास कुछ प्रश्न हैं:
- डीबगिंग के लिए, क्या पोलटरजिस्ट ड्राइवर के साथ सभी बाल तत्वों को सूचीबद्ध करने के लिए वैसे भी है?
- क्या मेरे xpath चयनकर्ता के साथ कुछ गड़बड़ है? तथ्य यह है कि
..
Capybara::Element tag="div"
लौट रहा है मुझे लगता है कि मेरे पास सही मूल तत्व है (और जैसा कि मैंने कहा है, यह अन्य समान परीक्षणों में अन्य पृष्ठों पर काम करता है), लेकिन मेरे पास यह सत्यापित करने का कोई तरीका नहीं है कि यह कौन सा तत्व है। मुझे नहीं पता कि xpath या कुछ और कैसे प्राप्त करें जो मुझे तत्व की पहचान करने में मदद करता है।