Как определить тип браузера (IE, FF, Chrome и т. Д.)

Я нахожусь в процессе переключения моих сценариев 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



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


person Joe    schedule 20.08.2011    source источник


Ответы (2)


Пытаться

browser.driver.browser # =>: firefox

person jarib    schedule 21.08.2011
comment
^ эта ссылка не работает и ссылается на вредоносное ПО - person Sam; 17.08.2018

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

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

конец

person Joe    schedule 23.08.2011
comment
Вы должны отметить ответ Джариба выше как ответ на ваш вопрос, тогда - person Alister Scott; 24.08.2011