如何在ruby中找到带有selenium的浏览器用户代理



我想知道当前的用户代理。我已经使用selenium2与ruby

我已经在env.rb中设置了user-agent

  Capybara.default_driver = :selenium
  Capybara.register_driver :selenium do |app|
  profile = Selenium::WebDriver::Firefox::Profile.new
  profile['general.useragent.override'] = "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8A293 Safari/6531.22.7"
  Capybara::Selenium::Driver.new(app, {:browser => :firefox, :profile =>  profile})
end

当运行黄瓜测试用例打开FireFox Browser和我没有看到iphone。所以我想检查测试用例是运行在iphone模式(用户代理)。我该怎么做呢?

$ irb
2.3.3 :001 > require 'selenium-webdriver'
 => true 
2.3.3 :002 > d = Selenium::WebDriver.for(:chrome)
 => #<Selenium::WebDriver::Driver:0x..fcc762e239318ca30 browser=:chrome> 
2.3.3 :003 > d.execute_script('return navigator.userAgent')
 => "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36" 
2.3.3 :004 > d.quit
 => nil 
2.3.3 :005 >
$

如果你想检查你的浏览器是在Iphone模式下打开的,所以你从你的测试用例中访问"http://google.com",你会看到网页是以移动模式打开的。因此,您可以证明您已经设置了适当的用户代理。

试试这个:-

page.driver.browser.browser
=> 
:firefox

最新更新