2012-03-07 61 views
1

我試圖點擊一個複選框,使購買按鈕出現。當我嘗試使用它時,出現一個「NoMethodError:未定義的方法'eula'for Cart:0x101f54810」錯誤。我想這可能是因爲有兩個相同的複選框,但我不確定。頁面對象中的重複複選框未定義?

HTML:

<p id="eula-box" class="annoy cc"><input type="checkbox" name="terms_of_service" value="terms_of_service" tabindex=20 />I have read & agree to the End-User License Agreement.</p> 
<p id="eula-box" class="annoy pp"><input type="checkbox" name="terms_of_service" value="terms_of_service" tabindex=20 />I have read & agree to the End-User License Agreement.</p> 

我的類:

require 'rubygems' 
require 'page-object' 
require 'page-object/page_factory' 
require 'watir-webdriver' 

CART_URL = 'http://www.anonymizer.com/cart/checkout.html?SKU=ANONUNV12' 

class Cart 
     include PageObject 
     page_url CART_URL 
     checkbox(:eula, :class=>"annoy_cc") 
     button(:purchase, :value=>'purchase') 

     def complete_order(data = {}) 
      self.eula.click 
     end 
end 

Udpated:我被改變的對象類型周圍試圖得到它的工作。元素是我試過的最後一個類型。我將我的例子改回複選框(我的原始嘗試)。感謝您指出了這一點。

+1

他們真的有相同的ID嗎?這是無效的HTML。 – 2012-03-07 01:53:37

回答

1

我對頁面對象不是很熟悉,但是element是一個有效的訪問器?我正在查看the documentation並沒有看到它。也許最好使用checkbox訪問器?

另一方面,查看問題是否由兩個類似複選框引起的最簡單方法是刪除一個,看看問題是否消失!

3

當你調用類級別checkbox方法在頁面對象時,它產生五種方法。召喚:

checkbox(:summary, :id => 'valid_checkbox') 

將產生:

check_summary  # check the checkbox 
uncheck_summary # uncheck the checkbox 
summary_checked? # returns true if it is checked. otherwise false 
summary_element # returns the Checkbox object 
summary?   # returns true if the element exists. otherwise false 

這些都是使用複選框時與之交互的方法。