2011-08-08 44 views
1

我跟隨對watirspec運行safariwatir來自safariwatir readme的說明。對watirspec運行safariwatir

$ git clone git://github.com/redsquirrel/safariwatir.git 
Cloning into safariwatir... 
... 

$ cd safariwatir 

$ git submodule update --init 
Submodule 'spec/watirspec' (git://github.com/jarib/watirspec.git) registered for path 'spec/watirspec' 
Cloning into spec/watirspec... 
... 
Submodule path 'spec/watirspec': checked out '4e080506694b079d08135e610716e5655f07183f' 

既然我已經RSpec的2,我已經取代spec specrspec spec

$ rspec spec 
/Users/zeljko/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': /Users/zeljko/Documents/projekt/safariwatir/spec/watirspec/lib/server.rb:91: invalid multibyte char (US-ASCII) (SyntaxError) 
... 

由於jarib在他回答說,safariwatir的watirspec點老犯(4e08 2009年),所以我有更新它以指向watirspec的watir2分支中的最新提交。

$ cd spec/watirspec && git pull origin watir2 
From git://github.com/jarib/watirspec 
* branch   watir2  -> FETCH_HEAD 
Updating 4e08050..fa27ccf 
... 

safariwatir的watirspec現在指向fa27ccf,但現在rspec spec抱怨說,它找不到spec/implementation.rb文件。

$ rspec spec 
/Users/zeljko/Documents/projekt/safariwatir/spec/watirspec/lib/runner.rb:58:in `load': no such file to load -- /Users/zeljko/Documents/projekt/safariwatir/spec/implementation.rb (LoadError) 

我已經根據從watirspec自述和閱讀watirwatir-webdrivercelerityimplementation.rb文件的指導創建spec/implementation.rb文件。

$LOAD_PATH.unshift("../lib") 
require "safariwatir" 

include Watir::Exception 

WatirSpec.implementation do |imp| 
    imp.name = :safariwatir 
    imp.browser_class = Watir::Safari 
end 

最後,它的工作原理:失敗的

$ rspec spec 
... 
Finished in 27.89 seconds 
1005 examples, 997 failures 

99%是這樣的:

10) Browser#html returns the DOM of the page as an HTML string 
    Failure/Error: browser.goto(WatirSpec.files + "/right_click.html") 
    Appscript::CommandError: 
     CommandError 
      OSERROR: -609 
      MESSAGE: Connection is invalid. 
      COMMAND: app("/Applications/Safari.app").documents[1].URL.set("file:///Users/zeljko/Documents/projekt/safariwatir/spec/watirspec/html/right_click.html") 
    # ./lib/safariwatir/scripter.rb:253:in `block in navigate_to' 
    # ./lib/safariwatir/scripter.rb:697:in `page_load' 
    # ./lib/safariwatir/scripter.rb:252:in `navigate_to' 
    # ./lib/safariwatir.rb:960:in `goto' 
    # ./spec/watirspec/browser_spec.rb:23:in `block (4 levels) in <top (required)>' 

環境:

的Mac OS X 10.6.8和Safari 5.1。

$ ruby -v 
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin10.8.0] 

$ gem list 
*** LOCAL GEMS *** 
... 
rspec (2.6.0) 
... 
rubygems-update (1.8.7) 
... 
safariwatir (0.4.0) 
+0

這樣的問題讓我想知道Webdriver人離Safari支持多遠。雖然由於安全記錄不佳,我從未親自使用它(FF或Chrome會更好),但有成千上萬的用戶喝這種蘋果 - Koolaide,並且不能改變瀏覽器,因此測試人員,如果Mac用戶對我們很重要,我們需要進行測試。 –

+0

我不認爲webdriver很快就會支持Safari。 –

+0

任何特別讓你想到的事情?是硒人羣反對蘋果,或蘋果是他們通常無益的自我?或者是其他東西? –

回答

1

您應該運行rspec spec(規範二進制似乎指向到非RVM紅寶石安裝在/庫/ ...)。

編碼問題已修復here - 所以safariwatir的watirspec子模塊相當過時。要麼更新子模塊,要麼使用1.8.7來避免該問題。

+0

我在添加watirspec子模塊的同時完成了'git submodule update --init','git submodule update'現在不做任何事情。我想watirspec是最新的,對吧?我應該改變'.gitmodules'中的內容嗎?如何更新watirspec? –

+0

如果你想要watirspec master:'cd spec/watirspec && git pull origin master'。watir-webdriver和watir使用watirspec的watir2分支,所以如果你需要的話,在pull命令中用'watir2'替換'master'。然後'cd ../ ..'並提交子模塊更改。 – jarib

+0

嘗試從ruby 1.8.7運行'rspec spec',但仍然沒有運氣 –