No puedo obtener el valor de opción sin utilizar xpath en Cabybara.
Intentaré explicarlo de nuevo. Tengo que obtener el valor “Arizona” pero solo puedo hacerlo a través de XPath. El elemento se mapeó con: elemento: select_cad_state, "#uniform-id_state"
. No quiero usar XPath para obtener el valor, quiero usar algo como: select_state.send_keys(DATA[:cad_user][:_state])
???..etc..etc..
Quiero obtener el valor “Arizona” del archivo users.yml y pasarlo como argumento en la página.
############ código de la página #####################
<div class="selector" id="uniform-id_state" style="width: 269px;"><span style="width: 259px; user-select: none;">Florida</span><select name="id_state" id="id_state" class="form-control" style="">
<option value="">-</option>
<option value="1">Alabama</option>
<option value="2">Alaska</option>
<option value="3">Arizona</option>
<option value="4">Arkansas</option></select></div>
################## my PageObjects ##############
class ScreenCadastro < SitePrism::Page
set_url 'http://automationpractice.com/index.php?controller=authentication&back=my-account'
element :input_cad_company, "#company"
element :input_cad_address, "#address1"
element :input_cad_city, "#city"
element :select_state, "#uniform-id_state" (mi problema está aquí)
################# archivo YAML ##################
:cad_user:
:_password: 457226
:_company: SQATest
:_address: International Drive 678
:_city: Bradenton
:_state: Arizona
################## mi archivo env ###################
DADOS = YAML.load(File.open(File.join(File.dirname(__FILE__) + "/massa/users.yml")))
input_cad_company.send_keys(DADOS[:cad_user][:_company])
input_cad_address.send_keys(DADOS[:cad_user][:_address])
input_cad_city.send_keys(DADOS[:cad_user][:_city])
find(:xpath,'/html/body/div/div[2]/div/div[3]/div/div/form/div[2]/p[7]/div/select/option[3]').click
davy.ai
Para obtener el valor de Arizona para el elemento select_state usando el mapeo :select_cad_state, se puede utilizar el método select de Capybara con el valor de opción como argumento.
Aquí te mostramos cómo modificar el código:
Esto debería seleccionar la opción Arizona para el elemento select_state sin utilizar XPath. Ten en cuenta que utilicé el valor “id_state” para el método select, que es el atributo id del elemento select. La opción
visible: false
se utiliza para seleccionar la opción incluso si no está actualmente visible en la página.