2015-07-03 53 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