2015-04-04 2 views
0

У меня есть firefox 20, который работает с моей версией watir-webdriver. Я использую следующий код, который может открыть любой браузер или безгласный браузер phantomjs. Chrome и фантомные работы, но firefox делает исключение.Невозможно создать браузер Firefox с помощью watir-webdriver

Почему? Как это исправить ?

require 'rubygems' 
require 'watir-webdriver' 
require 'phantomjs' 

def get_browser(browser_name) 
    browser = nil 
    if browser_name != nil  
    puts "\n#{browser_name} created\n" 
    browser = Watir::Browser.new browser_name.to_sym 
    else 
    puts "creating phantom browser !" 
    browser = Watir::Browser.new :phantomjs 
    puts "\nphantom created\n" 
    end 
    return browser 
end 

browser_name = ARGV[0] 
browser = get_browser(browser_name) 
puts "\n\n" 

browser.close 

Exception-

C:/code/ruby/lib/ruby/gems/1.8/gems/json_pure-1.4.3/lib/json/pure/generator.rb:393:in `to_json': undefined method `ascii_only?' for {}:Hash (NoMethodError) 
     from C:/code/ruby/lib/ruby/gems/1.8/gems/multi_json-1.3.7/lib/multi_json/adapters/json_common.rb:11:in `dump' 
     from C:/code/ruby/lib/ruby/gems/1.8/gems/multi_json-1.3.7/lib/multi_json.rb:115:in `dump' 
     from C:/code/ruby/lib/ruby/gems/1.8/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/common/json_helper.rb:23:in `json_dump' 
     from C:/code/ruby/lib/ruby/gems/1.8/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/firefox/profile.rb:254:in `write_prefs' 
     from C:/code/ruby/lib/ruby/gems/1.8/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/firefox/profile.rb:253:in `each' 
     from C:/code/ruby/lib/ruby/gems/1.8/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/firefox/profile.rb:253:in `write_prefs' 
     from C:/code/ruby/lib/ruby/gems/1.8/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/firefox/profile.rb:252:in `open' 
     from C:/code/ruby/lib/ruby/gems/1.8/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/firefox/profile.rb:252:in `write_prefs' 
     from C:/code/ruby/lib/ruby/gems/1.8/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/firefox/profile.rb:232:in `update_user_prefs_in' 
     from C:/code/ruby/lib/ruby/gems/1.8/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/firefox/profile.rb:79:in `layout_on_disk' 
     from C:/code/ruby/lib/ruby/gems/1.8/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/firefox/launcher.rb:58:in `create_profile' 
     from C:/code/ruby/lib/ruby/gems/1.8/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/firefox/launcher.rb:34:in `launch' 
     from C:/code/ruby/lib/ruby/gems/1.8/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/firefox/socket_lock.rb:20:in `locked' 
     from C:/code/ruby/lib/ruby/gems/1.8/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/firefox/launcher.rb:32:in `launch' 
     from C:/code/ruby/lib/ruby/gems/1.8/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/firefox/bridge.rb:24:in `initialize' 
     from C:/code/ruby/lib/ruby/gems/1.8/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/common/driver.rb:31:in `new' 
     from C:/code/ruby/lib/ruby/gems/1.8/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver/common/driver.rb:31:in `for' 
     from C:/code/ruby/lib/ruby/gems/1.8/gems/selenium-webdriver-2.33.0/lib/selenium/webdriver.rb:67:in `for' 
     from C:/code/ruby/lib/ruby/gems/1.8/gems/watir-webdriver-0.6.2/lib/watir-webdriver/browser.rb:46:in `initialize' 
     from watir-browser.rb:9:in `new' 
     from watir-browser.rb:9:in `get_browser' 
     from watir-browser.rb:19 

ответ

1

вы код работает для меня без проблем.

$ ruby test.rb 
creating phantom browser ! 
phantom created 

$ ruby test.rb firefox 
firefox created 

$ ruby test.rb chrome 
chrome created 

$ gem list | grep webdriver 
selenium-webdriver (2.45.0, 2.44.0) 
watir-webdriver (0.7.0, 0.6.11) 

Firefox поставляется с селеном WebDriver, вы, вероятно, просто нужно обновить камень (ы)

+0

selenium-webdriver (2.33.0), watir-webdriver (0.6.2). Невозможно обновить их из-за «ограничений». btw, Carl, каков ваш предпочтительный язык и инструментарий для тестирования автоматизации QA? – stack1

+1

@ stack1 Я поклонник огурца с watir-webdriver и, очевидно, Ruby (и я даже не использую Cucumber так, как он был предназначен) – Carldmitch

0

Рубин 1,8, Firefox 20, Watir 0.6.2 все оглядеться 2ish лет устареет. json_pure-1.4.3 однако 5 лет - https://rubygems.org/gems/json_pure/versions

Попробуйте обновить этот.

+0

Да, мои драгоценные камни очень старые. Я не могу их обновить из-за «ограничений». Если бы не они, я бы использовал последние драгоценные камни и браузеры. Надеюсь, что некоторые магические обходные пути или патч обезьяны. – stack1

+1

Да, вы столкнетесь с кучей проблем с проектами с открытым исходным кодом, если у вас нет контроля над версиями. Я подозреваю, что multi_json ожидает чего-то отличного от json_pure. если вы можете понять, что это такое, вы можете сделать патч обезьяны, но вам просто нужно сделать это, насколько это невозможно, в пределах ограничений, которые у вас есть. – titusfortner

Смежные вопросы