如何使用Capybara用CSS映射元素

发布于 2025-02-07 05:43:27 字数 4334 浏览 1 评论 0原文

如何用CSS替换我的XPATH?

我想找到这个项目:客户端

 element :select_area_solicitante,  :xpath,        '/html/body/div[2]/div/div[2]/div/div[1]/form/div/div[2]/div[1]/table/tbody/tr[5]/td/table/tbody[1]/tr[10]/td[5]/select/option[2]'

     <td rowspan="1"></td>
             <td align="center" rowspan="1" class="arrangingDescription" valign="top" colspan="1"><label for="_syAODLBAIXASERVER" class="Lab LabW">Os em processo de Baixa Server</label></td>
             <td align="center" rowspan="1" class="arrangingInteraction" valign="top" colspan="1">
                <div class="fOutsideCB">
                   <div id="dbf" onclick="return false;" class="fCB fCB_ro-false" tabindex="511" notnull="1"></div>
                   <input value="false" class="fInside" name="_byAODLBAIXASERVER" type="HIDDEN">
                </div>
             </td>
             <td rowspan="1"></td>
             <td align="center" rowspan="1" class="arrangingDescription" valign="top" colspan="1"><label for="_lyXWFMAODLID_XWFMTURO" class="Lab LabW">Prioridade</label></td>
             <td align="center" rowspan="1" class="arrangingInteraction" valign="top" colspan="1">
                <select style="padding-right:0px;" class="f fA" onrealchange="return true;" onchange="setTooltip(this,'');realChangeListener(event);" id="dc0" name="_lyXWFMAODLID_XWFMTURO" tabindex="521" evidence="">
                   <option title="" selected="" value="" class="f fA" style="border:0px;border-radius:0px;font-size:1em;box-shadow:none;"></option>
                   <option title="" value="1" class="f fA" style="border:0px;border-radius:0px;font-size:1em;box-shadow:none;">Mais Crítico</option>
                   <option title="" value="2" class="f fA" style="border:0px;border-radius:0px;font-size:1em;box-shadow:none;">Crítico</option>
                   <option title="" value="3" class="f fA" style="border:0px;border-radius:0px;font-size:1em;box-shadow:none;">Não Crítico (com impacto)</option>
                   <option title="" value="21" class="f fA" style="border:0px;border-radius:0px;font-size:1em;box-shadow:none;">Não Crítico (sem impacto)</option>
                </select>
             </td>
          </tr>
          <tr class="arrangingSpacing">
             <td></td>
          </tr>
          <tr>
             <td align="center" rowspan="1" class="arrangingDescription" valign="top" colspan="1"></td>
             <td align="center" rowspan="1" class="arrangingInteraction" valign="top" colspan="1"></td>
             <td rowspan="1"></td>
             <td align="center" rowspan="1" class="arrangingDescription" valign="top" colspan="1"><label for="_lyXGABAODLID_XGABTASO" class="Lab LabN LabW">Área solicitante</label></td>
             <td align="center" rowspan="1" class="arrangingInteraction" valign="top" colspan="1">
                <select style="padding-right:0px;width:100%;" class="f fA fN" onrealchange="return isSingleSelection(this,'Área solicitante','','Valor do campo inválido','Erro Campo');" onchange="setTooltip(this,'');realChangeListener(event);" id="dc1" name="_lyXGABAODLID_XGABTASO" tabindex="561" evidence="">
                   <option title="" value="" class="f fA" style="border:0px;border-radius:0px;font-size:1em;box-shadow:none;"></option>
                   <option title="" selected="" value="1" class="f fA" style="font-weight:bold;">CLIENTE</option>
 <option title="" value="2" class="f fA" style="border:0px;border-radius:0px;font-size:1em;box-shadow:none;">CONSUMOS</option>
               <option title="" value="3" class="f fA" style="border:0px;border-radius:0px;font-size:1em;box-shadow:none;">FATURAMENTO</option>
               <option title="" value="4" class="f fA" style="border:0px;border-radius:0px;font-size:1em;box-shadow:none;">COBRANÇA</option>
               <option title="" value="5" class="f fA" style="border:0px;border-radius:0px;font-size:1em;box-shadow:none;">ARRECADAÇÃO</option>

How can I replace my xpath with css?

I want to find this item: CLIENTE

 element :select_area_solicitante,  :xpath,        '/html/body/div[2]/div/div[2]/div/div[1]/form/div/div[2]/div[1]/table/tbody/tr[5]/td/table/tbody[1]/tr[10]/td[5]/select/option[2]'

     <td rowspan="1"></td>
             <td align="center" rowspan="1" class="arrangingDescription" valign="top" colspan="1"><label for="_syAODLBAIXASERVER" class="Lab LabW">Os em processo de Baixa Server</label></td>
             <td align="center" rowspan="1" class="arrangingInteraction" valign="top" colspan="1">
                <div class="fOutsideCB">
                   <div id="dbf" onclick="return false;" class="fCB fCB_ro-false" tabindex="511" notnull="1"></div>
                   <input value="false" class="fInside" name="_byAODLBAIXASERVER" type="HIDDEN">
                </div>
             </td>
             <td rowspan="1"></td>
             <td align="center" rowspan="1" class="arrangingDescription" valign="top" colspan="1"><label for="_lyXWFMAODLID_XWFMTURO" class="Lab LabW">Prioridade</label></td>
             <td align="center" rowspan="1" class="arrangingInteraction" valign="top" colspan="1">
                <select style="padding-right:0px;" class="f fA" onrealchange="return true;" onchange="setTooltip(this,'');realChangeListener(event);" id="dc0" name="_lyXWFMAODLID_XWFMTURO" tabindex="521" evidence="">
                   <option title="" selected="" value="" class="f fA" style="border:0px;border-radius:0px;font-size:1em;box-shadow:none;"></option>
                   <option title="" value="1" class="f fA" style="border:0px;border-radius:0px;font-size:1em;box-shadow:none;">Mais Crítico</option>
                   <option title="" value="2" class="f fA" style="border:0px;border-radius:0px;font-size:1em;box-shadow:none;">Crítico</option>
                   <option title="" value="3" class="f fA" style="border:0px;border-radius:0px;font-size:1em;box-shadow:none;">Não Crítico (com impacto)</option>
                   <option title="" value="21" class="f fA" style="border:0px;border-radius:0px;font-size:1em;box-shadow:none;">Não Crítico (sem impacto)</option>
                </select>
             </td>
          </tr>
          <tr class="arrangingSpacing">
             <td></td>
          </tr>
          <tr>
             <td align="center" rowspan="1" class="arrangingDescription" valign="top" colspan="1"></td>
             <td align="center" rowspan="1" class="arrangingInteraction" valign="top" colspan="1"></td>
             <td rowspan="1"></td>
             <td align="center" rowspan="1" class="arrangingDescription" valign="top" colspan="1"><label for="_lyXGABAODLID_XGABTASO" class="Lab LabN LabW">Área solicitante</label></td>
             <td align="center" rowspan="1" class="arrangingInteraction" valign="top" colspan="1">
                <select style="padding-right:0px;width:100%;" class="f fA fN" onrealchange="return isSingleSelection(this,'Área solicitante','','Valor do campo inválido','Erro Campo');" onchange="setTooltip(this,'');realChangeListener(event);" id="dc1" name="_lyXGABAODLID_XGABTASO" tabindex="561" evidence="">
                   <option title="" value="" class="f fA" style="border:0px;border-radius:0px;font-size:1em;box-shadow:none;"></option>
                   <option title="" selected="" value="1" class="f fA" style="font-weight:bold;">CLIENTE</option>
 <option title="" value="2" class="f fA" style="border:0px;border-radius:0px;font-size:1em;box-shadow:none;">CONSUMOS</option>
               <option title="" value="3" class="f fA" style="border:0px;border-radius:0px;font-size:1em;box-shadow:none;">FATURAMENTO</option>
               <option title="" value="4" class="f fA" style="border:0px;border-radius:0px;font-size:1em;box-shadow:none;">COBRANÇA</option>
               <option title="" value="5" class="f fA" style="border:0px;border-radius:0px;font-size:1em;box-shadow:none;">ARRECADAÇÃO</option>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

旧城空念 2025-02-14 05:43:27

而不是CSS,您只需使用Capybaras option选择器类型,

element :select_area_solicitante,  :option, 'CLIENTE' 

如果您坚持使用CSS,那么您会做类似的操作,

element :select_area_solicitante,  :css, 'option', text: 'CLIENTE'

尽管您确定您想要选项元素而不是选择吗?

Rather than CSS you can just use Capybaras option selector type

element :select_area_solicitante,  :option, 'CLIENTE' 

If you insist on using CSS then you would do something like

element :select_area_solicitante,  :css, 'option', text: 'CLIENTE'

although are you sure you want the option element and not the select?.

云仙小弟 2025-02-14 05:43:27

如果我们可以假设您的HTML示例有效,并且在HTML主体标签内,则假设pagecapybara对象,您可以做类似的事情:

page.all('tr td.arrangingInteraction')[3].all(:option)[1].text
=>"CLIENTE"

If we can assume your html example is valid and is inside a html body tag assuming page is the Capybara object, you can do something like:

page.all('tr td.arrangingInteraction')[3].all(:option)[1].text
=>"CLIENTE"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文