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

終わり

デフォルトは_firefox?()

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

終わり

デフォルトは_ie?()

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

終わり

デフォルトは_webdriver?()

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

終わり

于 2011-08-23T14:10:03.387 に答える