如何以浏览器的条件运行capybara?

时间:2013-12-06 15:27:48

标签: ruby internet-explorer google-chrome cucumber capybara

剧情简介:我有一个在Chrome中完美执行测试的水豚,但是IE中断了。我打算通过在IE上添加额外的自动化来缓解这种情况。

我在没有导轨的情况下访问它,所以......

request.env['HTTP_USER_AGENT']

我还没有。

将脚本条件运行到浏览器的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

假设你有registered each browser as a driver,你可以根据当前的驱动程序执行逻辑:

if Capybara.current_driver == :selenium_ie
  # Do IE stuff
else
  # Do Chrome stuff
end

(其中:selenium_id是您注册的驱动程序的名称。)

如果您尚未注册驱动程序,还可以检查浏览器的名称:

if page.driver.browser.browser == :internet_explorer
  # Do IE stuff
else
  # Do Chrome stuff
end

通过检查选项哈希,第二种方法实际上会更清楚:

if page.driver.options[:browser] == :internet_explorer
  # Do IE stuff
else
  # Do Chrome stuff
end

答案 1 :(得分:0)

这是我的优秀解决方案......

    def win?
      b = page.driver.browser.browser.to_s
      if b == 'internet_explorer'
        return true
      else
        return false
      end
    end