2010-07-23 3 views
0

Я хотел бы этот обычай шаг:Как я могу проверить с определенным словом ссылку или нет с огурцом?

Then I should see the link 'foo' 

и его противоположность:

But I should not see the link 'foo' 

На странице я могу иметь что-то вроде:

lorem foo bar 

или альтернативно

lorem <a href=''>foo</a> bar 

Мне нужно проверить, когда «foo» - это ссылка, а когда нет. Спасибо.

ответ

1

Попробуйте что-то вроде этого (я не пробовал запустить его, поэтому может потребоваться незначительные твики):

Then /^I should see the link "([^\"]*)"$/ do |linked_text| 
    # AFAIK this raises an exception if the link is not found 
    find_link(linked_text) 
end 

Then /^I should not see the link "([^\"]*)"$/ do |linked_text| 
    begin 
    find_link(linked_text) 
    raise "Oh no, #{linked_text} is a link!" 
    rescue 
    # cool, the text is not a link 
    end 
end 
+0

undefined метод 'find_link 'для # (NoMethodError) –

0

Есть уже заданные шаги Webrat, которые делают это (или, по крайней мере, очень похожи). От web_steps.rb

Then /^(?:|I)should see \/([^\/]*)\/ within "([^\"]*)"$/ do |regexp, selector| 
    within(selector) do |content| 
    regexp = Regexp.new(regexp) 
    if defined?(Spec::Rails::Matchers) 
     content.should contain(regexp) 
    else 
     assert_match(regexp, content) 
    end 
    end 
end 

и

Then /^(?:|I)should not see "([^\"]*)" within "([^\"]*)"$/ do |text, selector| 
    within(selector) do |content| 
    if defined?(Spec::Rails::Matchers) 
     content.should_not contain(text) 
    else 
     hc = Webrat::Matchers::HasContent.new(text) 
     assert !hc.matches?(content), hc.negative_failure_message 
    end 
    end 
end 
+0

Можете ли вы написать здесь пример слова в ссылке, я пытался, но безуспешно: И я должен видеть «Foo» в «в» И я должен видеть «Foo» в «[ a] " И я должен увидеть" [foo] "в пределах" [a] " но он не работает. –

0

Вы могли бы иметь больше удачи используя xpaths для этого, вы можете использовать что-то вроде «// a/text() = 'foo». Вам просто нужно включить xpaths для webrat, я написал сообщение в блоге о том, как делать что-то подобное с xpaths в таблицах здесь http://www.opsb.co.uk/?p=165, он включает в себя код, необходимый для включения xpaths для webrat.

0
Then /^I should not see the link "([^\"]*)"$/ do |linked_text| 
    page.should_not have_css("a", :text => linked_text) 
end 

Then /^I should see the link "([^\"]*)"$/ do |linked_text| 
    page.should have_css("a", :text => linked_text) 
end 
Смежные вопросы