2011-09-19 14 views
2

下面是我正在嘗試自動化的網頁的html,當我使用Watir時,它正確地找到了元素,但沒有用watir-webdriver。Watir vs Watir-webdriver處理xpath有什麼區別

<td width="87"> 
    <input type="image" style="height: 34px; width: 83px; border-width: 0px;" src="/test/test/img/Order-Online-Form_18.gif" id="order1_Next1" name="$Next1"> 
       </td> 

我使用下面的代碼:

require 'rubygems' 
require 'watir' 
browser = watir::Browser.new 
browser.goto 'test.com' 
test = @browser.td(:xpath,"//input[@id='order1_Next1']").exists? 
puts test 

當我使用的Watir,它返回true,但如果我使用的Watir-webdriver的,則返回false。 你們能幫助我,爲什麼的Watir-webdriver的不能識別的XPath

感謝

回答

5

你想,當你正在尋找一個「按鈕」找到一個「TD」。

使用XPath選擇器幾乎肯定是定位此元素的錯誤方法。

你好得多使用按鈕元素類型與id屬性:

require 'watir-webdriver' 
b = Watir::Browser.start 'http://dl.dropbox.com/u/18859962/qageeks.html' 
b.button(:id => 'order1_Next1').exists? # => true 
b.button(:xpath,"//input[@id='order1_Next1']").exists? # => true 

如果你是堅定的關於XPath的可以使用的最後一行,但你可以看到它的更爲詳細和閱讀不太清楚。

+0

xpath也往往比較慢,腳本編寫時更容易出現用戶錯誤,而且幾乎不可能讓其他人瞭解何時更新或檢查腳本。只有在沒有其他方法可行的情況下才能使用它 –

+0

Watir與Watir-Webdriver相同嗎?謝謝。 PS - 我不想爲此提出問題,因爲它會被降低評分。 – HelloWorldNoMore

+0

相同的API,不同的瀏覽器支持。 Webdriver支持所有的瀏覽器,Watir只支持IE –

相關問題