7

几天来,我一直在尝试实现 Selenium webdriver 来进行 javascript 测试。我已安装 gem 并将其包含selenium-webdriver在我的Gemfile. 通过添加, js: true到 Rspec 测试可以通过一些简单的测试。

没有其他必要了:运行测试时,Firefox 窗口打开前面在 Capybara 文件中指定的当前页面visit path("/news/#{news_item.id}"),然后单击一个按钮,显示一个隐藏的表单,填充字段,然后按下提交按钮,没问题。测试通过,浏览器关闭。

推进到更复杂的测试需要我调用 webdriver 上的方法,但我不知道如何访问它,因为我没有明确地创建一个。但是,如果我想创建自己的,我可以创建自己的,driver = Selenium::WebDriver.for :firefox但这会导致第二个浏览器实例打开,并且它是完全空白的,而不是打开 Capybara 导航到的页面。

我的问题是:我怎样才能访问正在使用的默认 webdriver,以便我可以调用诸如empty_stars = driver.find_element(:class, "empty-stars-container")和之类的方法driver.action.move_to(empty_stars).perform

4

1 回答 1

10

您可以使用以下方法访问 Capybara 中的 webdriver:

page.driver.browser

所以你会想做这样的事情:

empty_stars = page.driver.browser.find_element(:class, "empty-stars-container")
于 2012-07-31T16:36:03.167 回答