PageObject con Ruby: establecer el texto en un campo de texto solo funciona en el archivo principal

Estoy automatizando un sitio que tiene una página con una lista de opciones seleccionadas por un botón de radio. Al seleccionar una de las radios, se presentan un campo de texto y una lista de selección.

Creé un archivo (test_contracting.rb) que es a través del cual ejecuto la prueba (ruby test_contracting.rb) y algunas otras clases para representar mi página.

En mi clase ContractPage, tengo la siguiente declaración de elemento:

  checkbox(:option_sub_domain, :id => "option_sub_domain")
  text_field(:domain, :id => "domain_text") 
  select_list(:tld, :id => "domain_tld")

He creado en ContractPage un método que establece la configuración del dominio de esta manera:

  def configure_domain(config={})
        check_option_sub_domain
        domain = config[:domain]
        tld = config[:tld]
   end

Cuando llamo al método configure_domain desde test_contracting.rb, selecciona el botón de opción, pero no llena el campo con los valores. Los parámetros están entrando en el método correctamente. Lo he comprobado usando "pone". Incluso si cambio los parámetros a una cadena general como "bla" no funciona. El punto molesto es que si en test_contracting.rb llamo exactamente a los mismos componentes, funciona.

my_page_instance = ContractPage.new(browser)
my_page_instance.domain = "bla"
my_page_instance.tld = ".com"

Lo que encontré que funcionaba fue en el método configure_domain, implementar lo siguiente:

domain_element.value = config[:domain]
tld_element.send_keys config[:locaweb_domain]

Entonces funcionó.

La documentación para el módulo PageObjects que estoy usando como referencia se puede encontrar aquí:http: //rubydoc.info/github/cheezy/page-object/master/PageObject/Accessors#select_list-instance_metho

¿Ustedes tienen alguna explicación sobre por qué el método generado automáticamente por el objeto de página para establecer el valor del objeto no funcionó en este ámbito / contexto?

or cierto, un amigo intentó lo mismo con Java y también falló.

Respuestas a la pregunta(4)

Su respuesta a la pregunta