首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果在Cabybara中不使用xpath,我就无法获得选项值。

如果在Cabybara中不使用xpath,我就无法获得选项值。
EN

Stack Overflow用户
提问于 2021-12-01 17:11:05
回答 1查看 46关注 0票数 1

我再试着解释一遍。我必须得到值Arizone,但我只能通过xpath获得它。元素被映射为:element :select_cad_state, "#uniform-id_state"。我不想用xpath来得到阿肯色州的值,我想使用这样的东西:select_state.send_keys(DATA[:cad_user][:_state]) ???..etc..etc..

我希望从users.yml文件中获取亚利桑那值,并将其作为前面的参数传递。

代码语言:javascript
复制
                 ############  code page #####################

<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></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" (my problem is here)
                
                ################ yaml file ##############
                :cad_user:
                  :_password:       457226
                  :_company:        SQATest
                  :_address:        International Drive 678
                  :_city:           Bradenton
                  :_state:          Arizona 
                
                ################## my env file ###################
                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 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-01 17:48:52

您正在询问选项值,但从所有代码中可以看出,您实际上希望根据选项元素的字符串内容(而不是值)进行选择。正如我在回答你之前的问题时所提到的,这应该是

代码语言:javascript
复制
select_state.select(DADOS[:cad_user][:_state])

如果这不适合你,请提供它给你的错误信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70188442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档