2009-10-20 5 views
14

Можно ли следовать ссылке по имени этого класса вместо идентификатора, текста или названия? Учитывая, у меня есть (ха-ха, огурец инсайдерскую он?) Следующий HTML-код:Огурцы/Webrat: следуйте ссылке по классу CSS?

<div id="some_information_container"> 
    <a href="edit" class="edit_button">Translation here</a> 
</div> 
  • Я не хочу, чтобы соответствовать по тексту, потому что я должен был бы заботиться о значениях перевода в моих тестах
  • Я хочу, чтобы мои кнопки выглядели одинаково, поэтому я буду использовать класс CSS.
  • Я не хочу, чтобы присвоить идентификатор для каждой ссылки, потому что некоторые из них идентифицироваться через контейнер и класс ссылки

Что я пропустил в Огурец/Webrat? Или у вас есть советы, чтобы решить это лучше?

Спасибо за вашу помощь и наилучшими пожеланиями,

Джо

редактировать: Я нашел интересное обсуждение происходит по этой теме прямо here - кажется, остается открытым вопрос, на данный момент. У вас есть другие решения для этого?

+0

Тег Ruby был бы полезен –

+0

Я добавил тэг ruby, Брайан. – Jared

ответ

4

Вот как я сделал это с огурцами, надеюсь, что это помогает. # В определении шага помогает CSS понять, что происходит.

Это работает только с идентификаторами не имена классов

Шаг Определение

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 

Характеристика

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

Я не очень хорошо знаком с API WebRat, но как насчет использования поиска DOM, чтобы получить идентификатор ссылки класса, который вы ищете, а затем передаете его функции click_link?

Вот ссылка на некоторый javascript для извлечения элемента по классам. http://mykenta.blogspot.com/2007/10/getelementbyclass-revisited.html

Теперь, когда я думаю об этом, а как насчет использования Javascript, просто измените его на какой-нибудь случайный идентификатор, а затем нажмете на него?

В любом случае, это должно работать до скромного обсуждения имени, чтобы включить функцию getbyclass как разрешенную.

0

Работает ли has_tag для вас?

have_tag ('a.edit_button')

3

Вот как утверждать текст внутри элемента с именем класса от "edit_botton"

Then I should see "Translation here" within "[@class='edit_button']" 
Смежные вопросы