2011-12-11 26 views
5

Tôi muốn có khả năng kiểm tra chính xác swapping of a stylesheet trong bộ thử nghiệm của mình. Với bài đăng này về testing the page title using Capybara, tôi nghĩ tôi có thể thử nghiệm bất kỳ thẻ link nào trong phần head của trang. Nhưng có vẻ như tôi đã nhầm.Capybara: Cách kiểm tra bản định kiểu của trang?

Với một bước như thế này:

save_and_open_page 
page.should have_xpath("//link") # just something as simple as this, first. 

save_and_open_page tạo một HTML như thế này (với một số công cụ loại bỏ cho ngắn gọn):

<head> 
    ... 
    <link href="/home/ramon/source/unstilted/public/system_test/stylesheets/fancake/css/2.css?1323572998" type="text/css" class="jquery-styler" rel="stylesheet"> 
    ... 
</head> 

Nhưng tôi nhận được thất bại này:

expected xpath "//link" to return something (RSpec::Expectations::ExpectationNotMetError) 

Cho tất cả, làm cách nào để kiểm tra biểu định kiểu?

Cảm ơn!

Trả lời

3

Nếu bạn muốn kiểm tra xem một file CSS tồn tại trên một trang, sau đó bạn có thể làm như sau:

page.should have_xpath("//link[contains(@href, 'style.css')]") 

Điều đó sẽ kiểm tra xem có bất kỳ yếu tố <link> nơi thuộc tính href chứa style.css. Lỗi về "xpath mong muốn trả về một cái gì đó" có nghĩa là XPath bạn cung cấp không tồn tại - tại sao nó nghĩ rằng, tôi không chắc chắn, vì bạn có một thẻ <link> hoàn toàn hợp lệ trong HTML bạn đã cung cấp.

1

Khi tôi đang kiểm tra cho một css những gì tôi làm là một cái gì đó giống như

expect(page.body).to include('/home/ramon/source/unstilted/public/system_test/stylesheets/fancake/css/2.css')

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