1

我正在尝试单击使购买按钮出现的复选框。当我尝试使用它时,我收到“NoMethodError: undefined method '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

更新:我正在更改对象类型以使其正常工作。Element 是我尝试的最后一种类型。我将示例改回复选框(我最初的尝试)。感谢您指出了这一点。

4

3 回答 3

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

这些是使用复选框时与之交互的方法。

于 2012-05-12T12:29:20.953 回答
2

PageObjectcheckbox生成以下方法来检查(即单击)它。

check_eula

http://rubydoc.info/gems/page-object/0.6.3/PageObject/Accessors:checkbox

于 2012-03-07T07:43:58.337 回答
1

我对页面对象不是很熟悉,但它是element一个有效的访问器吗?我正在查看文档并没有看到它。也许使用访问器会更好checkbox

顺便说一句,查看您的问题是否是由两个相似的复选框引起的最简单方法是删除一个并查看问题是否消失!

于 2012-03-07T00:59:45.830 回答