使用Selenium WebDriver和Ruby时如何知道我使用的浏览器类型?

时间:2016-02-25 20:13:45

标签: ruby selenium

如果有办法知道哪种浏览器正在运行测试? 我计划在if statemente上使用它:

if $driver.kind_of? Selenium::WebDriver::Firefox   
  # some code 
end

我已经尝试了" instance_of?"," is_a?"。并且有一些模块和类,如Selenium :: WebDriver :: Firefox :: Profile等。 可能是我在错误的轨道上......

1 个答案:

答案 0 :(得分:0)

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