2012-05-25 51 views
8

Tôi có một trang với một số liên kết như thế <a href='/bla/bla/bla/?page=xxx>text</a> Tôi muốn để phù hợp với certains xxx giá trị liên kết sử dụng Capybara và RSpec, tôi không quan tâm về bla/bla/bla phần của href thuộc tính.Capybara + RSpec làm thế nào để phù hợp với một phần của thẻ thuộc tính

page.should have_selector("div.class ul li a", :href => "page=2") 

không hoạt động, cũng

page.should have_xpath("//a[@href='page=2']") 

không phải là một lựa chọn vì tôi không biết đầy đủ các giá trị thuộc tính href.

PS: cũng không tìm thấy bất kỳ tài liệu API Capybara hoàn chỉnh nào chỉ để lấy tất cả các mô tả và phương pháp có sẵn của mô tả. Tôi có điều đó?

+0

Re. tài liệu, trong [Capybara readme.md] (https://github.com/jnicklas/capybara) trên Github, tìm kiếm phần "Tìm kiếm". Phần đó đề cập đến Rubydoc trên [Capybara :: Node :: Finders] (http://rubydoc.info/github/jnicklas/capybara/master/Capybara/Node/Finders) để tham khảo đầy đủ. –

Trả lời

14

Hãy thử sử dụng contains:

page.should have_xpath "//a[contains(@href,'page=2')]" 
+1

cảm ơn, đó là những gì tôi đang tìm kiếm, tiếc là capybara bỏ lỡ tài liệu toàn diện: ( – aristofun

3

Hãy thử điều này:

link = page.find('div.class ul li a') 
link[:href].should match(/page=2/) 

Thông tin thêm here.

+0

tìm phần tử đầu tiên và kiểm tra href của nó, nhưng tôi muốn kết hợp nếu có bất kỳ phần tử nào – aristofun

+0

Vì vậy, bạn muốn thực hiện hai xác nhận sau đó ... đầu tiên là liên kết bạn muốn tồn tại và sau đó giá trị href của nó chứa/page = # {some_value} /. Ngoài ra, tôi nghĩ rằng nó có giá trị kiểm tra sự tồn tại cho, nó có giá trị cho một id. Bạn không cần phải tìm kiếm 'div.class ul li a') –

Các vấn đề liên quan