2017-10-23 11 views
0

Ruby/Cucumber 코드가 실행되는 동안 이상한 오류가 발생했습니다. 해당 메소드가없는 페이지 객체 'wait_for_present'오류가 발생했습니다.

이 코드를 실행하는 동안 :

def navigate_to_expense(expense) 
    on_page(HomePage).click_top_tab('Expenses') 
    on_page(HomePage) do |page| 
    recent = "Expense: #{expense.description}" 
    if page.recent_items.any? { |i| i[recent] } 
     page.click_recent_item(recent) 
    else 
     on_page(ExpenseSearchPage) do |page| 
     page.advanced_search 
     page.search_my_expense(expense) 
     page.open_search_result(expense) 
     end 
    end 
    end 
end 

및 #click_top_tab :

def click_top_tab(name) 
    if element_exists?(top_tab_link(name)) 
     top_tab_link(name).click 
     click_top_tab(name) unless on_tab?(name) 
    else 
     link_element(id: 'LINK_menu_services').hover 
     div_element(class: 'quciklinkdropdiv_globaldirectory', id: 'dropmenu1').link_element(text: name).click 
    end 
    end 

나는 다음과 같은 오류가 발생

When I edit the expense        # features/step_definitions/expense_steps.rb:156 
    undefined method `wait_for_present' for #<Watir::Browser:0x42d7940> (NoMethodError) 
    ./features/support/env.src/team_connect_page.rb:37:in `click_top_tab' 
    ./features/step_definitions/expense_steps.rb:100:in `navigate_to_expense' 
    ./features/step_definitions/expense_steps.rb:157:in `/^I edit the expense$/' 
    features/scenarios/expenses.feature:16:in `When I edit the expense' 

라인 (37)가 link_element(id: 'LINK_menu_services').hover 라인입니다. 보시 다시 피 코드에 .wait_until_present이 없으므로 오류가 기본 페이지 오브젝트 코드에 있다고 가정합니다. 그렇다면 알려진 버그 중에서 찾을 수 없었습니다. 그것이 나의 코드라면, 나는 그것이 어디에있을 수 있는지에 관해서 완전히 혼란 스럽다.

+1

Page-Object 및 Watir의 어떤 버전을 사용하고 있습니까? –

+0

Watir 용 6.4.1 및 Page-Object 용 2.1.1 – Cooper

+0

문제를 재현하는 데 여전히 문제가 있습니다. 문제를 재현하는 최소한의 예를 만들 수 있습니까? –

답변

0

전체 프로젝트를 볼 수 없기 때문에 확신 할 수는 없지만 HomePage 또는 상속받은 클래스의 initialize_page 내부에서 오류가 발생하는 것처럼 보입니다. 나는 거기에서 볼 것이다.

이건 그냥 추측이지만, 누군가가 경쟁 조건을 수정 시도하고 실수 _present까지 wait_ 대신 wait_for_present에 넣어 것 같습니다.

+0

그건 내 프로젝트 공간에 전혀 없습니다. 페이지 객체 나 watir 코드의 버그 인 것 같습니다. 아직 시도하고 재현 할 기회가 없었습니다. – Cooper