非常簡單的獲取目前測試中使用的瀏覽器的方法。 的webdriver是這樣定義的:
def setup
client = Selenium::WebDriver::Remote::Http::Default.new
client.timeout = 120
case $browserName
when "firefox"
$browser = Selenium::WebDriver.for(:firefox, :http_client => client)
when "chrome"
$browser = Selenium::WebDriver.for(:chrome, :http_client => client)
when "safari"
$browser = Selenium::WebDriver.for(:safari, :http_client => client)
when "IE"
$browser = Selenium::WebDriver.for(:internet_explorer, :http_client => client)
else
puts "ERROR: Wrong browser name!!"
end
$browser.get ""
$wait = Selenium::WebDriver::Wait.new(:timeout => 30)
end
所以用這個簡單的語句,我可以得到的名稱在webdriver的定義:
browser_name = $browser.browser.to_s
只需在
if browser_name == "firefox"
#some code
end
我可能認爲你可以使用'$ driver.capabilities.browser_name ==「chrome」' – Buaban
讓您的測試針對特定瀏覽器是一個非常糟糕的主意。另外,如果你正在編寫測試,你選擇WebDriver,所以你已經知道了什麼瀏覽器。你不應該測試它。 –
@AndrewRegan我知道你的意思,但在這種特殊情況下,firefox在測試的某個部分具有特殊行爲,另一部分是chrome。所以我不得不使用If語句來捕捉兩種可能的行爲。而且我必須品嚐,因爲我定義了Firefox,Chrome和Safari的WebDriver,並且3將被測試,所以事實上,如果沒有對那個時候使用的網絡驅動程序的評估,我不會是瀏覽器。我會發布我得到的解決方案。 – Punkmati