非常简单的获取目前测试中使用的浏览器的方法。 的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