首先是關於 Ruby 和 Gem 基本環境,在 Mac OS X 平臺上使用 Ruby 環境是非常簡單的,這一點之前的文章裏也提到了,這裡主要說的是 Windows 平臺上的問題,由於在 Windows 平臺上要依賴蠻多的額外組件,所以個人不是太推薦從 Ruby 開始裝基礎環境,然後再 Gem 等環境一路搭建起來,至少不推薦非開發人員這樣裝,一來太花時間,二來也有時候也是問題多多。這裡推薦大家直接安裝 Rails Installer 集合環境包,安裝包裏包含了我們要使用的大部分組件或者基礎性的組件,比如:DevKit ,在 Windows 平臺上没有這個組件,很多 Gem 都没有辦法正常安裝。
通過向 text_field 方法傳遞參數 :id 值 'entry_0',表明想要選取一個 id 值為 entry_0 的 HTML DOM 元素。方法在調用完成後會返回元素的引用,所以這裡創建了一個變數 t 來存放元素引用。值得注意的是,使用常規元素獲取方法總會得到的 TextField 物件引用(亦即是上文源碼中的 t),不會得到 nil 物件。
require'watir-webdriver'b=Watir::Browser.start'bit.ly/watir-webdriver-demo'r=b.label(:text=>'What is ruby?').parent.radio:value=>'A gem'r.exists?r.setr.set?
r = b.label(:text => 'What is ruby?').parent.radio :value => 'A gem' 稍顯複雜。大概申明一下 ruby 的文法規則:在主義明確的情況下方法調用時可以不用括號將參數括起來。但在這裡的處理邏輯是在獲取指定元素後再找到其父元素節點,所以在 b.label(:text => 'What is ruby?').parent 的調用中使用括號來包含 label 方法的調用參數。
從 b.label(:text => 'What is ruby?').parent.radio :value => 'A gem' 中還可以看出別一個特點,在指定 radio 元素的父級元素節點物件上也可以調用元素提取功能(text_field、select_list、label 這類方法),那麼也就是說在任何確定的元素物件上都可以進行元素節點範圍內的元素搜尋與提取(如上文中,就是以 text 值為:What is ruby? 的單選按鈕的父級節點為根節點,在範圍內再搜尋 value 值為:A gem 的單選按鈕元素引用)。
require'watir-webdriver'b=Watir::Browser.start'bit.ly/watir-webdriver-demo'c=b.label(:text=>'What versions of ruby?').parent.checkbox:value=>'1.9.2'c.exists?c.setc.set?
➜ octopress git:(master) ✗ ssh-keygen -t rsa -b 2048
Generating public/private rsa key pair.
Enter file in which to save the key (~/.ssh/id_rsa): [直接按下 Enter 鍵即可]Enter passphrase (empty for no passphrase): [直接按下 Enter 鍵即可]Enter same passphrase again:
Your identification has been saved in ~/.ssh/id_rsa.
Your public key has been saved in ~/.ssh/id_rsa.pub.
The key fingerprint is:
c1:54:h7:3d:hg:99:3r:xc:g2:wa:56:2f:k9:3h:l0:6y test@pointpoint.local
The key's randomart image is:
+--[ RSA 2048]----+
| |
| o. .|
| . |
| |
| . oo |
| |
| oo . |
| |
| . oo |
+-----------------+
irb(main):003:0> b = Watir::Browser.new :chrome , :switches => %w[–disable-popupblocking]
Selenium::WebDriver::Error::WebDriverError: Unable to find the chromedriver executable. Please download the server from http://code.google.com/p/chromedriver/downloads/list and place it somewhere on your PATH. More info at http://code.google.com/p/selenium/wiki/ChromeDriver.
$ cd octopress # If you use RVM, You'll be asked if you trust the .rvmrc file (say yes).
$ ruby --version # Should report Ruby 1.9.2
$ gem install bundler
$ rbenv rehash # If you use rbenv, $ rehash to be able to run the bundle command
$ bundle install
$ rake install
其實一起都想爲自己的部落格換個新的系統,因爲 wordpress 不適合我的習慣。作爲半個程式員,我總是希望我寫的内容可以比較“乾淨”一些,也就是不要包含那些討厭的 HTML 代碼,倒不是說 HTML 不容易理解,只是寫完後全篇就變得比較噁心。到處都是些標籤和轉義字元,這一點着實讓人崩潰。我曾一度想要自己實現一套符合自己要求的格式,再用伺服器代碼在讀取時格式成 CSS 排版,但終止還是放棄了。
所以我進而尋找了其它出路,不知道是不是以前沒有注意到大家可以看到 Lion 中的程式都可以看到是否是運作於沙箱下的。這個東西最早我是在 BSD 系統上看到的。這裡才想起來 IOS 系統上的 Safari 程式也有著同樣的毛病。不知道是不是這回 Back To Mac ,連這個 Bug 也一起 Back 回來了。總之,有了思路就好解決了。