7

我正在切换我的 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?)
 
# 运行 IE 特定代码
end
if(browser.is_firefox?)
# 运行 firefox 特定代码
end



在此先感谢,

4

2 回答 2

10

尝试

browser.driver.browser #=> :firefox

于 2011-08-21T01:17:25.267 回答
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

结尾

于 2011-08-23T14:10:03.387 回答