2009-10-20 26 views
14

có thể đi theo liên kết bằng tên lớp của nó thay vì id, văn bản hoặc tiêu đề không? Với tôi có (haha, dưa chuột người trong cuộc anh?) Mã html sau:Dưa chuột/Webrat: theo liên kết theo lớp CSS?

<div id="some_information_container"> 
    <a href="edit" class="edit_button">Translation here</a> 
</div> 
  • Tôi không muốn để phù hợp với bằng văn bản vì tôi phải quan tâm đến các giá trị dịch trong các thử nghiệm của tôi
  • Tôi muốn các nút của tôi trông giống như vậy, vì vậy tôi sẽ sử dụng lớp CSS.
  • Tôi không muốn gán một id cho mỗi liên kết duy nhất, bởi vì một số trong số họ được xác định một cách hoàn hảo qua các container và các lớp liên kết

Có điều gì tôi đã bỏ lỡ trong dưa chuột/Webrat? Hay bạn có một số lời khuyên để giải quyết điều này một cách tốt hơn?

Nhờ sự giúp đỡ của bạn Trân trọng,

Joe

chỉnh sửa: Tôi tìm thấy một cuộc thảo luận thú vị đang diễn ra về chủ đề này ngay here - dường như vẫn còn là một vấn đề mở cho bây giờ. Bạn có giải pháp nào khác cho việc này không?

+0

Thẻ Ruby sẽ hữu ích –

+0

Tôi đã thêm thẻ ruby, Brian. – Jared

Trả lời

4

Đây là cách tôi đã làm nó với dưa chuột, hy vọng nó sẽ giúp. # Trong định nghĩa bước giúp CSS hiểu những gì đang xảy ra.

này chỉ làm việc với ID không phải là tên lớp

Bước Definition

Then /^(?:|I)should see ([^\"]*) within a div with id "([^\"]*)"$/ do |text, selector| 
    # checks for text within a specified div id 
    within "##{selector}" do |content| 
    if defined?(Spec::Rails::Matchers) 
     content.should contain(text) 
    else 
     hc = Webrat::Matchers::HasContent.new(text) 
     assert hc.matches?(content), hc.failure_message 
    end 
    end  
end 

Feature

Scenario Outline: Create Project 
    When I fill in name with <title> 
     And I select <data_type> from data_type 
     And I press "Create" 
    Then I should see <title> within a div with id "specifications" 

Scenarios: Search Terms and Results 
    | data_type | title  | 
    | Books  | A Book Title | 
0

Tôi không quen thuộc với API WebRat, nhưng việc sử dụng tra cứu DOM để lấy ID tham chiếu của lớp bạn đang tìm kiếm thì chuyển cho hàm click_link như thế nào?

Đây là liên kết đến một số javascript để truy xuất một mục theo lớp. http://mykenta.blogspot.com/2007/10/getelementbyclass-revisited.html

Bây giờ tôi nghĩ về nó, việc sử dụng Javascript để chỉ đơn giản là thay đổi nó thành một số ID ngẫu nhiên sau đó nhấp vào đó?

Dù bằng cách nào, điều đó sẽ hoạt động cho đến khi cuộc tranh luận tiết kiệm của tên để bao gồm chức năng getbyclass như được giải quyết.

0

has_tag có hoạt động cho bạn không?

has_tag ('a.edit_button')

3

Sau đây là cách để khẳng định văn bản trong vòng một phần tử với tên lớp của "edit_botton"

Then I should see "Translation here" within "[@class='edit_button']" 
Các vấn đề liên quan