2011-12-20 68 views
2

管理其他配置使用Mac 10.6.8配置使用watir-webdriver,关于如何解决无效文件路径的任何建议?使用watir-webdriver安装Opera驱动程序:无效的文件路径

$ 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>> 

回答

1

我没有的Mac OS X 10.6得心应手的权利,但我按照10.7机器上installation instructions,一切工作就好了。 (我已经安装了OSX GCC安装而不是的Xcode,我已经从的App Store安装歌剧

browser = Watir::Browser.new :opera 
后摆脱

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

安装json宝石:

gem install json 

sudo gem install json 
0

我不流利的红宝石/的Watir问题(还),但我很好奇,为什么你传递一个:歌剧符号的新方法?

浏览器=的Watir :: Browser.new:歌剧

如果你键入Opera.app而不是一条合适的路径:歌剧的象征,它的工作原理?