2009-10-20 14 views
14

Czy można podążać za łączem według jego nazwy klasy zamiast id, tekstu lub tytułu? Biorąc pod uwagę, mam (haha, ogórek poufnych on?) Następujący kod HTML:Ogórek/Webrat: śledzić link według klasy CSS?

<div id="some_information_container"> 
    <a href="edit" class="edit_button">Translation here</a> 
</div> 
  • nie chcę, aby dopasować według tekstu, bo musiałbym się martwić o wartości tłumaczeniowych w moich testach
  • Chcę, aby moje przyciski wyglądały tak samo, więc użyję klasy CSS.
  • Nie chcę przypisać identyfikator do każdego linku, ponieważ niektóre z nich są doskonale zidentyfikowane przez pojemnik i klasy łącza

Czy jest coś brakowało mi w Ogórek/Webrat? Czy masz jakieś porady, aby rozwiązać ten problem w lepszy sposób?

Dzięki za pomoc i pozdrawiam,

Joe

EDIT: znalazłem ciekawą dyskusję dzieje na ten temat prawo here - wydaje się pozostawać kwestią otwartą do teraz. Czy masz jakieś inne rozwiązania?

+0

Znacznik Ruby byłby pomocny. –

+0

Dodałem rubinowy tag, Brian. – Jared

Odpowiedz

4

Oto jak to zrobiłem z ogórkiem, nadzieję, że to pomaga. # W definicji kroku pomaga CSS zrozumieć, co się dzieje.

ta działa tylko z ID nie klasa nazwy

Krok Definicja

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

Nie jestem bardzo zaznajomiony z interfejsem API WebRat, ale co z wykorzystaniem wyszukiwania DOM, aby uzyskać identyfikator referencyjny klasy, której szukasz, a następnie przekazać ją do funkcji click_link?

Oto link do niektórych javascript w celu pobrania pozycji według klas. http://mykenta.blogspot.com/2007/10/getelementbyclass-revisited.html

Teraz, kiedy o tym myślę, co z JavaScriptem, aby po prostu zmienić go na losowy ID, a następnie kliknąć?

Tak czy inaczej, powinno to zadziałać, dopóki skromna debata nazwy nie będzie zawierała funkcji getbyclass.

0

Czy have_tag działa dla Ciebie?

have_tag ('a.edit_button')

3

Oto jak dochodzić tekst wewnątrz elementu z nazwą klasy słowa "edit_botton"

Then I should see "Translation here" within "[@class='edit_button']"