Frage

I am trying to click a checkbox that enables a purchase button to appear. When I try to use it, I get a "NoMethodError: undefined method 'eula' for Cart:0x101f54810" error. I think it may be because there are two identical checkboxes, but I am just not certain.

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>

My class:

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: I was changing the object type around trying to get it to work. Element was the last type I tried. I changed my example back to checkbox (my original attempt). Thanks for pointing that out.

War es hilfreich?

Lösung

PageObject's checkbox generate the following method to check (i.e. click) it.

check_eula

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

Andere Tipps

When you call the class level checkbox method in page-object it generates five methods. The call:

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

will generate:

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

These are the method to interact with when using the checkbox.

I'm not very familiar with page-objects, but is element a valid accessor? I'm looking at the documentation and don't see it. Perhaps it would be better to use the checkbox accessor?

As an aside, the easiest way to see if your problem is caused by having two similar checkboxes, would be to just remove one and see if the problem goes away!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top