Установка драйвера Opera с помощью watir-webdriver: неверный путь к файлу - PullRequest
2 голосов
/ 20 декабря 2011

Удалось ли настроить что-либо еще с помощью Mac 10.6.8 для использования watir-webdriver, какие-либо предложения о том, как разрешить Неверный путь к файлу?

$ irb
>> require "watir-webdriver"
=> true

>> browser = Watir::Browser.new :opera

Selenium::WebDriver::Error::UnknownError: Invalid file path: null (com.opera.core.systems.runner.OperaRunnerException)
    from [remote server] com.opera.core.systems.runner.OperaRunnerSettings(OperaRunnerSettings.java):70:in `setBinary'
    from [remote server] com.opera.core.systems.OperaDriver(OperaDriver.java):286:in 
`<init>'
    from [remote server] sun.reflect.NativeConstructorAccessorImpl(NativeConstructorAccessorImpl.java):-2:in `newInstance0'
    from [remote server] sun.reflect.NativeConstructorAccessorImpl(NativeConstructorAccessorImpl.java):39:in `newInstance'
    from [remote server] sun.reflect.DelegatingConstructorAccessorImpl(DelegatingConstructorAccessorImpl.java):27:in `newInstance'
    from [remote server] java.lang.reflect.Constructor(Constructor.java):513:in `newInstance'
    from [remote server] org.openqa.selenium.remote.server.DefaultDriverFactory(DefaultDriverFactory.java):63:in `callConstructor'
    from [remote server] org.openqa.selenium.remote.server.DefaultDriverFactory(DefaultDriverFactory.java):57:in `newInstance'
    from [remote server] org.openqa.selenium.remote.server.DefaultSession$BrowserCreator(DefaultSession.java):177:in `call'
    from [remote server] org.openqa.selenium.remote.server.DefaultSession$BrowserCreator(DefaultSession.java):1:in `call'
    from [remote server] java.util.concurrent.FutureTask$Sync(FutureTask.java):303:in `innerRun'
    from [remote server] java.util.concurrent.FutureTask(FutureTask.java):138:in `run'
    from [remote server] java.util.concurrent.ThreadPoolExecutor$Worker(ThreadPoolExecutor.java):886:in `runTask'
    from [remote server] java.util.concurrent.ThreadPoolExecutor$Worker(ThreadPoolExecutor.java):908:in `run'
    from [remote server] java.lang.Thread(Thread.java):680:in `run'
    from /Library/Ruby/Gems/1.8/gems/selenium-webdriver-2.15.0/lib/selenium/webdriver/remote/response.rb:50:in `assert_ok'
    from /Library/Ruby/Gems/1.8/gems/selenium-webdriver-2.15.0/lib/selenium/webdriver/remote/response.rb:15:in `initialize'
    from /Library/Ruby/Gems/1.8/gems/selenium-webdriver-2.15.0/lib/selenium/webdriver/remote/http/common.rb:58:in `new'
    from /Library/Ruby/Gems/1.8/gems/selenium-webdriver-2.15.0/lib/selenium/webdriver/remote/http/common.rb:58:in `create_response'
    from /Library/Ruby/Gems/1.8/gems/selenium-webdriver-2.15.0/lib/selenium/webdriver/remote/http/default.rb:64:in `request'
    from /Library/Ruby/Gems/1.8/gems/selenium-webdriver-2.15.0/lib/selenium/webdriver/remote/http/common.rb:39:in `call'
    from /Library/Ruby/Gems/1.8/gems/selenium-webdriver-2.15.0/lib/selenium/webdriver/remote/bridge.rb:450:in `raw_execute'
    from /Library/Ruby/Gems/1.8/gems/selenium-webdriver-2.15.0/lib/selenium/webdriver/remote/bridge.rb:92:in `create_session'
    from /Library/Ruby/Gems/1.8/gems/selenium-webdriver-2.15.0/lib/selenium/webdriver/remote/bridge.rb:68:in `initialize'
    from /Library/Ruby/Gems/1.8/gems/selenium-webdriver-2.15.0/lib/selenium/webdriver/opera/bridge.rb:28:in `initialize'
    from /Library/Ruby/Gems/1.8/gems/selenium-webdriver-2.15.0/lib/selenium/webdriver/common/driver.rb:43:in `new'
    from /Library/Ruby/Gems/1.8/gems/selenium-webdriver-2.15.0/lib/selenium/webdriver/common/driver.rb:43:in `for'
    from /Library/Ruby/Gems/1.8/gems/selenium-webdriver-2.15.0/lib/selenium/webdriver.rb:60:in `for'
    from /Library/Ruby/Gems/1.8/gems/watir-webdriver-0.4.1/lib/watir-webdriver/browser.rb:35:in `initialize'
    from (irb):2:in `new'
    from (irb):2>> 

Ответы [ 2 ]

1 голос
/ 20 декабря 2011

У меня сейчас нет под рукой Mac OS X 10.6, но я следовал инструкциям по установке на машине 10.7 и все работает просто отлично. (Я установил OSX GCC Installer вместо Xcode , и я установил Opera из App Store .)

Чтобы избавиться от

Warning: multi_json is using default ok_json engine. Suggested action: require and load an appropriate JSON library.

после

browser = Watir::Browser.new :opera

Установить json gem:

gem install json

или

sudo gem install json
0 голосов
/ 04 января 2012

Я не владею проблемами Ruby / Watir (пока), но мне любопытно, почему вы передаете символ: opera новому методу?

browser = Watir ::Browser.new: opera

Если вы введете правильный путь к Opera.app вместо символа: opera, он работает?

...