2015-07-03 55 views
0

我試圖起牀並與水豚一起運行,並且我測試了poltergeist和selenium-webdriver之間的功能差異。一個非常基本的測試是給我意想不到的結果,我想確認這是我在配置中做錯了什麼,或者如果這只是預期的行爲。獲得與水豚/ poltergeist一起工作的基本測試

spec_helper:

require 'capybara/rspec' 
# require 'selenium/webdriver' 
require 'capybara/poltergeist' 

Capybara.run_server = false 
# Capybara.default_driver = :selenium 
Capybara.default_driver = :poltergeist 
Capybara.javascript_driver = :poltergeist 
Capybara.app_host = 'http://google.com' 

hello_world_spec:

require 'spec_helper' 

feature 'testing with rspec' do 
    before :each do 
    visit '/' 
    end 

    scenario 'visit google main page' do 
    expect(page).to have_content 'About' 
    end 

    scenario 'search for something', js: true do 
    fill_in 'q', with: 'test search' 
    # click_on 'Google Search' 
    sleep 5 
    page.driver.render 'screenshot.png', full: true 
    expect(page).to have_content 'Wikipedia' 
    end 
end 

第一個測試成功的預期,但第二個只與硒的作品。如果您在任何瀏覽器中手動執行此測試,Google會在輸入時執行搜索。與poltergeist,搜索從未執行,直到我手動點擊「谷歌搜索」按鈕。這裏發生了什麼?

回答

1

Selenium使用native.send_keys填寫輸入字段。但是,看着最漂亮的changelog看來它目前只支持基本的send_keys,並且據我在代碼庫中可以看到它不使用send_keys來設置字段值。

嘗試直接使用send_keys方法來查看這是否解決了您的問題。它應該在您的情況下,作爲您只發送一個簡單的字符串無鑰匙修飾符

以下是我會建議 -

find_field('q').native.send_keys('test search') 
+0

謝謝!我明天會測試一下。 – itslittlejohn