Как определить тип браузера (IE, FF, Chrome и т. Д.) - PullRequest
7 голосов
/ 21 августа 2011

Я нахожусь в процессе переключения моих сценариев Watir / FireWatir на использование watir-webdriver и мне нужны средства в watir-webdriver, чтобы определить, с каким типом браузера выполняется тест (IE, FF, Chrome)).

Если Watir / FireWatir при просмотре класса браузера вернет либо «Watir :: IE», либо «FireWatir: Firefox».Используя это, код может быть разветвлен для выполнения кода, специфичного для браузера.

В watir-webdriver класс браузера всегда равен «Watir :: Browser», он не меняется при работе IE, Firefox илиХром.

Кто-нибудь знает, как в Ruby с watir-web-драйвером идентифицировать тип браузера (т.е. IE, Firefox, Chrome)?

Например: С помощью Watir / Firewatir определить методы:

def is_ie?()
<br>    return self.class.to_s == "Watir::IE"
<br>end

<br>def is_firefox?()
<br>    return self.class.to_s == "FireWatir::Firefox"
<br>end


Затем вызовите их вот так ...

if(browser.is_ie?)
<br>   # run the IE specific code
<br>end

<br>if(browser.is_firefox?)
<br>  # run the firefox specific code
<br>end



Заранее спасибо
Джо

Ответы [ 2 ]

10 голосов
/ 21 августа 2011

Попробуйте

browser.driver.browser # =>: firefox

0 голосов
/ 23 августа 2011

Спасибо, это как раз то, что мне нужно!

Поскольку я нахожусь в процессе перехода с некоторыми сценариями, портированными на 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

конец

...