0

我想在窗口 7 中使用 ruby​​ cucumber 和 capybara 设置 selenium webdriver,以便在家练习。有人可以提供详细的步骤。

4

2 回答 2

0

我举个例子:

require "selenium-webdriver"
gem "test-unit"
require "test/unit"

class Papidal < Test::Unit::TestCase

  def setup
    @driver = Selenium::WebDriver.for :firefox
    #@base_url = "http://localhost:8090/"
    @accept_next_alert = true
    @driver.manage.timeouts.implicit_wait = 30
    @verification_errors = []
  end

  def teardown
    @driver.quit
    assert_equal [], @verification_errors
  end

  def test_papidal
    @driver.get("http://localhost:8090/myproject/")
    @driver.find_element(:xpath, "//a[@wicketpath='showModalLink']").click
  end

  def element_present?(how, what)
    @driver.find_element(how, what)
    true
  rescue Selenium::WebDriver::Error::NoSuchElementError
    false
  end

  def verify(&blk)
    yield
  rescue Test::Unit::AssertionFailedError => ex
    @verification_errors << ex
  end

  def close_alert_and_get_its_text(how, what)
    alert = @driver.switch_to().alert()
    if (@accept_next_alert) then
      alert.accept()
    else
      alert.dismiss()
    end
    alert.text
  ensure
    @accept_next_alert = true
  end
end

如果您想将此与 Internet Explorer 一起使用:

  • 更改 @driver = Selenium::WebDriver.for :firefox 通过这个 @driver = Selenium::WebDriver.for :ie
  • 放入您的 PATH(环境变量):IEDriverServer.exe(您可以从以下网址下载:http ://code.google.com/p/selenium/downloads/detail?name=IEDriverServer_x64_2.30.2.zip )并在执行前执行剧本
于 2013-03-03T12:34:57.900 回答
0

selenium 默认与 capybara 一起提供,将 :js => true 添加到您的黄瓜步骤中,您应该一切顺利。我正在使用没有黄瓜的 rspec,但我有类似的东西

describe "Something" do 
it "should use selenium", js: true do 

page.should have_content "It works!"
end

你应该看到 Firefox 出现了你可能想考虑一个无头驱动程序来降低浏览器启动成本

这是 Rails 3 in Action 的一个项目,它有一些使用 selenium 的特性

https://github.com/rails3book/ticketee

于 2012-12-01T06:02:14.130 回答