คำถามติดแท็ก capybara

Capybara เป็นกรอบการทดสอบเว็บแอปพลิเคชันสำหรับแอปพลิเคชัน Rack เช่น Rails, Sinatra และ Merb

4
ฉันจะตรวจสอบว่าเขตข้อมูลฟอร์มได้รับการเติมล่วงหน้าอย่างถูกต้องโดยใช้ capybara ได้อย่างไร
ฉันมีฟิลด์ที่มีป้ายกำกับที่เหมาะสมซึ่งฉันสามารถเติมด้วย capybara ได้โดยไม่มีปัญหา: fill_in 'Your name', with: 'John' ฉันต้องการตรวจสอบค่าที่มีอยู่ก่อนเติมและไม่สามารถหาได้ ถ้าฉันเพิ่มหลังจากfill_inบรรทัดต่อไปนี้: find_field('Your name').should have_content('John') การทดสอบนั้นล้มเหลวแม้ว่าการเติมจะทำงานก่อนหน้านี้อย่างที่ฉันตรวจสอบแล้วโดยการบันทึกหน้า ฉันพลาดอะไรไป
145 forms  rspec  capybara 

5
วิธีรับพา ธ ปัจจุบันด้วยสตริงการสืบค้นโดยใช้ Capybara
URL ของหน้าเป็นสิ่ง/people?search=name ที่ฉันต้องการในขณะที่ฉันใช้current_pathวิธีการของ capybara ที่ส่งคืน/peopleเท่านั้น current_path.should == people_path(:search => 'name') แต่มันล้มเหลวในการพูด expected: "/people?search=name" got: "/people" เราจะทำให้มันผ่านไปได้อย่างไร มีวิธีการทำเช่นนี้หรือไม่?

13
จะตรวจสอบช่องทำเครื่องหมายใน Capybara ได้อย่างไร?
ฉันใช้ Rspec และ Capybara ฉันจะเขียนขั้นตอนในการตรวจสอบได้checkboxอย่างไร? ฉันพยายามcheckตามค่า แต่ไม่พบcheckboxไฟล์. ฉันไม่แน่ใจว่าต้องทำอย่างไรเนื่องจากฉันมี ID เดียวกันและมีค่าต่างกัน นี่คือรหัส: <input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="61" name="cityID"> <input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="62" name="cityID"> <input id="cityID" type="checkbox" style="text-align: center; opacity: 0;" value="63" name="cityID">

9
วิธีเลือกตัวเลือกในเมนูแบบเลื่อนลงโดยใช้ Capybara
ฉันกำลังพยายามเลือกรายการจากเมนูแบบเลื่อนลงโดยใช้ Capybara (2.1.0) ฉันต้องการเลือกตามหมายเลข (หมายถึงเลือกตัวเลือกที่สองสาม ฯลฯ ) ฉัน Googled อย่างบ้าคลั่งที่พยายามทำทุกอย่าง แต่ไม่มีโชค ฉันสามารถเลือกได้โดยใช้ค่า: find("option[value='4c430d62-f1ba-474f-8e8a-4452c55ea0a8']").click แต่ฉันไม่ต้องการใช้วิธีนั้น b / c ค่าคือสิ่งที่จะเปลี่ยนแปลงและนั่นจะทำให้การทดสอบของฉันเปราะบาง HTML สำหรับเมนูแบบเลื่อนลงคือ: <td class="value"> <select name="organizationSelect" id="organizationSelect" class="required"> <option value="NULL">Choose...</option> <option value="4c430d62-f1ba-474f-8e8a-4452c55ea0a8"> Institution1</option> <option value="e1a4efa7-352d-410a-957e-35c8a3b92944"> Institution / test</option> </select> </td> ฉันลองสิ่งนี้ด้วย: option = find(:xpath, "//*[@id='organizationSelect']/option[2]").text select(option, :from => organizationSelect) แต่ส่งผลให้เกิดข้อผิดพลาดนี้: Ambiguous match, found 2 …

7
จะคลิกลิงค์แรกในรายการไอเทมหลังจากอัพเกรดเป็น Capybara 2.0 ได้อย่างไร
วิธีคลิกลิงค์แรกในกรณีนั้น: <div class="item"> <a href="/agree/">Agree</a> </div> <div class="item"> <a href="/agree/">Agree</a> </div> within ".item" do first(:link, "Agree").click end และฉันได้รับข้อผิดพลาดนี้: Capybara::Ambiguous: Ambiguous match, found 2 elements matching css ".item" และหากไม่มีwithinฉันได้รับข้อผิดพลาดนี้: Failure/Error: first(:link, "Agree").click NoMethodError: undefined method `click' for nil:NilClass
125 ruby  rspec  capybara 

7
ข้อผิดพลาด: เกิดข้อผิดพลาดในการติดตั้ง capybara-webkit:
ข้อเสนอแนะในการแก้ไขปัญหา? gem install capybara-webkit -v '0.11.0' Building native extensions. This could take a while... ERROR: Error installing capybara-webkit: ERROR: Failed to build gem native extension. /home/durrantm/.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb sh: qmake: not found Gem files will remain installed in /home/durrantm/.rvm/gems/ruby-1.9.3-p194/gems/capybara-webkit-0.11.0 for inspection. Results logged to /home/durrantm/.rvm/gems/ruby-1.9.3-p194/gems/capybara-webkit-0.11.0/./gem_make.out

6
วิธีค้นหาองค์ประกอบโดยการจับคู่ข้อความขององค์ประกอบใน Capybara
ฉันมีสององค์ประกอบต่อไปนี้ใน HTML <a href="/berlin" >Berlin</a> <a href="/berlin" >Berlin Germany </a> ฉันกำลังพยายามค้นหาองค์ประกอบโดยใช้วิธี Capybara ต่อไปนี้ find("a", :text => "berlin") ด้านบนจะแสดงสององค์ประกอบเนื่องจากทั้งสองมีข้อความเบอร์ลิน มีวิธีจับคู่ข้อความใน Capybara หรือไม่?
103 ruby  regex  capybara 

9
Capybara Ambiguity Resolution
ฉันจะแก้ไขความคลุมเครือใน Capybara ได้อย่างไร ด้วยเหตุผลบางประการฉันต้องการลิงก์ที่มีค่าเดียวกันในเพจ แต่ไม่สามารถสร้างการทดสอบได้เนื่องจากได้รับข้อผิดพลาด Failure/Error: click_link("#tag1") Capybara::Ambiguous: Ambiguous match, found 2 elements matching link "#tag1" สาเหตุที่เลี่ยงเรื่องนี้ไม่ได้เพราะการออกแบบ ฉันพยายามสร้างหน้าทวิตเตอร์ขึ้นมาใหม่โดยมีทวีต / แท็กทางด้านขวาและแท็กทางด้านซ้ายของหน้า ดังนั้นจึงหลีกเลี่ยงไม่ได้ที่หน้าลิงก์ที่เหมือนกันจะปรากฏในหน้าเดียวกัน

5
วิธีใช้ fill_in กับ find ใน Capybara (ถ้าเป็นไปได้)
ฉันต้องการทำสิ่งต่อไปนี้ แต่ทำไม่ได้เนื่องจากลักษณะของ fill_in คาดหวังให้ locator เป็นอาร์กิวเมนต์แรก find(:css, "input[id$='donation_pledge_hundreds']").fill_in :with => "10" ฉันยังได้ลองทำ element = find(:css, "input[id$='donation_pledge_hundreds']") fill_in element.<method> , :with => "10" แต่ไม่มีเมธอดที่ส่งคืนข้อมูลใด ๆ เพื่อระบุองค์ประกอบที่จะ Fill_in มีแนวคิดเกี่ยวกับวิธีที่ดีที่สุดในการค้นหาฟิลด์ผ่าน regex เพื่อใช้กับ fill_in หรือไม่?
93 find  capybara 

5
วิธีการที่ไม่ได้กำหนด `` เยี่ยมชม 'เมื่อใช้ RSpec และ Capybara ในราง
ฉันไม่สามารถให้ capybara ทำงานกับ rspec ได้ มันทำให้ฉันมีข้อผิดพลาดนี้: undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1:0x16529f8 @example=nil> ฉันรู้ว่ามีโพสต์มากมายเกี่ยวกับเรื่องนี้ แต่ไม่มีวิธีแก้ปัญหาใดที่ใช้ได้ผลสำหรับฉัน ส่วนใหญ่เกี่ยวข้องกับสเปคที่ไม่อยู่ใน / spec / คุณสมบัติ - ที่ของฉันอยู่ ก่อนอื่นข้อผิดพลาด: $bundle exec rspec spec F Failures: 1) security signs users in Failure/Error: visit "/sessions/new" NoMethodError: undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested_1:0x16529f8 @example=nil> # ./spec/features/security_spec.rb:4:in `(root)' Finished in 0.006 seconds …

4
Capybara: ฉันจะกรอกข้อมูลในช่องป้อนข้อมูลด้วย ID ได้อย่างไร
ฉันมีสิ่งนี้: <input class="string optional" id="course_group_courses_attributes_2_name" name="course_group[courses_attributes][2][name]" placeholder="Lengua" size="15" type="text" /> </div> ฉันจะกรอกข้อมูลในฟิลด์นั้นด้วย ID ได้อย่างไร?
88 rspec  capybara 

6
จะยืนยันจำนวนองค์ประกอบโดยใช้ Capybara ด้วยข้อความแสดงข้อผิดพลาดที่เหมาะสมได้อย่างไร
ฉันรู้ว่าใน Capybara คุณสามารถทำสิ่งนี้ได้: page.should have_css("ol li", :count => 2) อย่างไรก็ตามหากสมมติว่าหน้านั้นมีองค์ประกอบที่ตรงกันเพียงรายการเดียวข้อผิดพลาดนี้ไม่สามารถอธิบายได้มากนัก: 1) initial page load shows greetings Failure/Error: page.should have_css("ol li", :count => 2) expected css "ol li" to return something แทนที่จะเป็นข้อความแสดงข้อผิดพลาดที่ค่อนข้างคลุมเครือนี้มีวิธีการเขียนการยืนยันในลักษณะที่ผลลัพธ์ของข้อผิดพลาดจะเป็นเช่น 'เมื่อจับคู่' ol li ', คาดว่า: 2, พบ: 1' เห็นได้ชัดว่าฉันสามารถสร้างตรรกะที่กำหนดเองสำหรับพฤติกรรมดังกล่าวได้ - ฉันกำลังถามว่ามีวิธีทำ 'นอกกรอบ' หรือไม่? สำหรับสิ่งที่คุ้มค่าฉันใช้ Selenium driver และ RSpec
87 rspec  dsl  capybara 


10
จะทดสอบกล่องโต้ตอบยืนยันกับแตงกวาได้อย่างไร?
ฉันใช้ Ruby on Rails กับ Cucumber และ Capybara ฉันจะทดสอบคำสั่งยืนยันอย่างง่ายได้อย่างไร ("แน่ใจหรือ") นอกจากนี้ฉันจะหาเอกสารเพิ่มเติมเกี่ยวกับปัญหานี้ได้ที่ไหน

8
จะรับโหนดหลักใน Capybara ได้อย่างไร
ฉันกำลังทำงานกับปลั๊กอิน jQuery จำนวนมากซึ่งมักสร้างองค์ประกอบ DOM โดยไม่มี id หรือคุณสมบัติการระบุตัวตนอื่น ๆ และวิธีเดียวที่จะได้รับใน Capybara (ตัวอย่างเช่นการคลิก) - คือการรับเพื่อนบ้าน (ลูกหลานอีกคนของบรรพบุรุษ) ก่อน . แต่ฉันไม่พบที่ไหน Capybara สนับสนุนสิ่งต่างๆเช่น: find('#some_button').parent.fill_in "Name:", :with => name เหรอ?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.