2014-09-11 84 views
1

我有我的代碼這個問題。我的應用程序內的這個頁面使用http基本認證。我正在使用Rspec和Capybara測試我的應用程序,但是在刪除評論時我遇到了數據確認問題,但它似乎無法通過。Rails 4水豚+硒,數據確認

這裏是我的測試代碼:

before(:each) do 
    page.driver.browser.authorize ENV['ADMIN_LOGIN'], ENV['ADMIN_PASSWORD'] 
    ... 
    end 

    ... 

    it "should redirect to create new inspiring post and create new post on click" do 
    visit admin_path 
    click_link("create_inspi") 
    fill_in("Title",:with => "Test title") 
    fill_in("Short",:with => "Test short desc") 
    fill_in("Body",:with => "Test body desc") 
    fill_in("Date",:with => "12.12.2012") 
    click_button("Create new post") 
    test(
     have_content("Test title"), 
     have_content("12.12.2012") 
    ) 
    end 

    example "when inside Link to all... you can delete particular comment",:js => true do 
    visit admin_path 
    click_link("Link to all comments in Web development and Motivation category") 
    click_link(@webdev_comment.id) 
    page.driver.browser.accept_js_confirms 
    end 

現在,默認情況下爲我的測試我使用的水豚:: RackTest ::驅動程序,但現在因爲我無法找到一個方法來確認RackTest我的數據確認必須使用Selenium驅動程序來確認此數據。但是使用這個硒驅動程序我的最後一個例子現在測試時,我發現一個問題:

1) testing admin webpage when inside Link to all... you can delete particular comment 
    Failure/Error: page.driver.browser.authorize ENV['ADMIN_LOGIN'], ENV['ADMIN_PASSWORD'] 
    NoMethodError: 
     undefined method `authorize' for #<Selenium::WebDriver::Driver:0x00000003e6ad68> 
    # ./spec/features/admin.rb:13:in `block (2 levels) in <top (required)>' 

我的問題是:

如何與硒驗證基本的HTTP?

-------------- EDITED ------------------

我找到了一種方法來登錄到管理員通過使用此代碼

example "when inside Link to all... you can delete particular comment",:js => true do 
    visit root_path 
    @url = current_url 
    @tablica = @url.split("http://") 
    @correct_url = @tablica[1] 
    admin_selenium_path = "http://#{ENV["ADMIN_LOGIN"]}:#{ENV["ADMIN_PASSWORD"]}@#{@correct_url}admin" 
    page.visit admin_selenium_path 
    click_link("Link to all comments in Web development and Motivation category") 
    click_link(@webdev_comment.id) 
    page.driver.browser.accept_js_confirms 
end 

但現在,即使它登錄,有字面上的測試數據庫中沒有數據硒驅動程序,它拋出周圍說,特定的對象不能被發現的錯誤。

before(:each) do 
    # page.driver.browser.authorize ENV['ADMIN_LOGIN'], ENV['ADMIN_PASSWORD'] 
    @mystory = Mystory.create(name: "My story:",body: "My name is Matthew...") 
end 

上面這段代碼之前的塊內沒有創建一個必要的@mystory記錄裏面的數據庫的水豚與硒驅動程序。

任何想法如何用selenium驅動程序填充水豚數據庫?

回答

1

我不知道這是否是完全一樣的問題,但我添加這個地方上面/前跳過確認對話框與水豚

page.evaluate_script('window.confirm = function() { return true; }') 
+0

遺憾的是它不工作。但感謝您的幫助! :)。 – Matthew 2014-09-11 14:10:47

+0

您是否在確認出現之前添加它?而不是之後?如果是之後,那麼它將不起作用。它必須在(甚至在測試的第一行)之前完成 – RichardAE 2014-09-11 15:42:57

+0

我在塊前添加它並且它不工作。 – Matthew 2014-09-11 15:47:53