如何确定浏览器类型(IE,FF,Chrome等)

时间:2011-08-20 20:37:56

标签: watir firewatir watir-webdriver

我正在切换我的Watir / FireWatir脚本以使用watir-webdriver,需要在watir-webdriver中使用一种方法来确定当前正在执行测试的浏览器类型,(IE,FF,Chrome) )。

使用Watir / FireWatir查看浏览器的类将返回“Watir :: IE”或“FireWatir:Firefox”。使用该代码可以分支以执行特定于浏览器的代码。

在watir-webdriver中,浏览器的类始终为“Watir :: Browser”,运行IE,Firefox或Chrome时不会发生变化。

有没有人知道Ruby中使用watir-web-driver来识别浏览器的类型(即IE,Firefox,Chrome)?

例如:使用Watir / Firewatir定义方法:

def is_ie?()

return self.class.to_s == "Watir::IE"
end
def is_firefox?()
return self.class.to_s == "FireWatir::Firefox"
end


然后像这样调用它们......

if(browser.is_ie?)

# run the IE specific code
end
if(browser.is_firefox?)
# run the firefox specific code
end



提前致谢,

2 个答案:

答案 0 :(得分:10)

尝试

browser.driver.browser#=> :火狐

答案 1 :(得分:0)

谢谢,这正是我所需要的!

由于我正处于过渡状态,其中一些脚本移植到Watir-WebDriver,而另一些仍然需要在Watir / Firewatir下运行,我已经更新了mt方法,如下所示,发布它们以防其他人处于相同的情况。

def is_chrome?()

if(is_webdriver? == true)
  return (self.driver.browser.to_s.downcase == "chrome")
else
    return (self.class.to_s == "ChromeWatir::Browser")
end

def is_firefox?()

if(is_webdriver? == true)
  return (self.driver.browser.to_s.downcase == "firefox")
else
    return (self.class.to_s == "FireWatir::Firefox")
end

def is_ie?()

if(is_webdriver? == true)
  return (self.driver.browser.to_s.downcase == "internet_explorer")
else
    return (self.class.to_s == "Watir::IE")
end

def is_webdriver?()

  if($LOADED_FEATURES.to_s =~/watir-webdriver/)
    return true
  else
    return false
  end

相关问题