2013-05-16 3 views
3

오이를 통해 브라우저 데이터를 테스트하고 있습니다. 나는 어떤 링크를 클릭해야하는지 결정하기 위해 페이지의 링크 목록을보고 있습니다.문자열에 변수에 저장된 단어가 포함되어 있는지 확인하는 방법

그래서 제가 디저트 링크 목록을 가지고 있고 사과 소스를 찾고 싶다고 가정 해 봅시다. 링크를 통과하는 방법을 호출하고 사과 소스가있는 이름을 사과 소스에 전달한 후 사과 소스가있는 방법을 찾습니다.

문자열 "사과 소스"는 @dessert에 저장되며 @dessert가 자주 변경되기 때문에 "사과 소스"가 @dessert 변수에 저장되어 있는지 알아야합니다.

내가 할 때 @ dessert.text.include? "# @ dessert"나는 계속 거짓말을합니다. 그것을 클릭해야한다는 결정을 내리기 위해서는이 사실이 필요합니다. 나는 그 자체로 @dessert 평가할 때 나는 "사과 소스"... 나는 따옴표 (")를 제거 할 수 있습니까

이 그래서 그들은 평가되지 않습니다?이 나를 망치는 생각!

+0

왜'@ 자체를 포함 dessert' 것? – tadman

답변

1

을 난

@dessert = "apple sauce;pears;walnuts" 
@dessert.include?("apple sauce") 
# => true 

: 표준적인 방법은 당신이 패턴을 설명 할 수있는 정규 표현식을 사용하는 중입니다에 문자열이 다른 문자열이있는 경우 일치 "충분한을 닫습니다", 또는 리터럴 문자열을 검색 테스트 귀하의 질문이 "#@dessert" 인 이유는 그 문자열이 정확하게 그와 같은 것으로 평가되기 때문입니다. "#{@dessert}"은 아마도 당신이 의도 한 것일 것입니다.은 문자열 값을 인라인합니다. 그러나 다른 데이터가없는 단일 변수에 대해서만 테스트하므로 중복됩니다. x"#{x}"x이 시작되는 문자열 인 경우 동일한 문자열로 평가됩니다.

+1

음,'@x = 11; "# @ x"는''11 "'을줍니다. 그럼에도 불구하고 자극적 인 지름길이지만 지름길. –

+1

'@ x'가'11'이면 문자열이 아니고 Fixnum입니다. 나는 그것이 이미 문자열 인 특정한 경우에 말하고 있었다. 여러분은''@ @ x "'는 단지 추악하고 덜 유연한'@ x.to_s '의 표현 방법이라고 생각합니다. ''# @ x "'가 자주 사용되는 것을 보지 못합니다. '# {@ x}' '이 (가) 선호하는 방법 인 것으로 보이므로 보간법이 명확합니다. – tadman

+2

Ruby의 Perlisms 중 일부는 유용하지만, 적어도 내게 유용합니다. 그러나 보간법의 특정 형태는 내가 떠나고 싶습니다. 아마 괴상한 노인 같은거야. –

0

@dessert, @ dessert.text가있는 개체, 해당 개체의 특성을 비교하는 것처럼 보입니다. 또한, 여러분은 여기에있는 다른 사람들과 함께 피할 것을 권장하는 문자열 보간 형식을 사용하고 있습니다.

@dessert.text.include? "#{@dessert.text}" 

을 시도하고가 true를 돌려주는 경우를 참조하십시오.

0

다음은 컨테이너를 방문한 후 모든 링크를 클릭하여 페이지로 이동 한 다음 페이지 제목, URL 및 사이트 이동 경로에 모두 포함 된 텍스트를 컨테이너. 링크에 특정 텍스트가 있는지 여부를 평가할 if 문을 추가하고, 텍스트가 있으면 해당 텍스트를 클릭하면됩니다. 스펙 파일에서 lib에 파일

def pull_text_and_href_from_continent_link 
    @continents.each do |continent| 
     find(".continents li.#{continent}").hover 
     page.should have_selector(".#{continent} .continent-wrapper", :visible => true) 
     page.all(:css, '.continents .continent-wrapper a').each do |nav_link| 
      @array.push(:text => nav_link.native.attribute("text"), :href => nav_link[:href]) 
     end 
    end 
end 

에서

(이 스위트 룸은 오이를 사용하지 않는,하지만 그래도 코드가 유사하다)

it "should have the right page title, url, and breadcrumbs" do 
    @array.each do |info| 
    if info[:text].include?('See all') 
     pp "Skipping the see all link for this container" 
    else 
     visit_page_logged_out(info[:href]) 
     assert_correct_page_url info[:href] 
     assert_country_breadcrumbs remove_specials(info[:text]) 
     assert_page_title info[:text] 
    end 
    end 
관련 문제