Diferença entre //, .// e ..// no XPath?
Sep 22 2020
Alguém pode me ajudar com a diferença entre os XPaths abaixo e me ajudar a entender qual deles usar quando. Descobri que todos os três funcionam, mas não tenho certeza de quando usá-los.
Get Element Text ${output} //priorityGet Element Text ${output} .//vrrp-group/nameGet Element Text ${output} ..//track/priority-hold-time
Respostas
2 kjhughes Sep 22 2020 at 20:57
Em geral
//seleciona entre nós descendentes ou nós próprios (ao longo do descendant-or-selfeixo ). É uma abreviação de /descendant-or-self::node()/.
//começa a partir do nó raiz, cobrindo assim todo o documento..//começa a partir do nó de contexto ...//começa a partir do pai do nó de contexto.
No seu caso particular
//priorityseleciona todos ospriorityelementos do documento..//vrrp-group/nameseleciona, abaixo do nó de contexto, todos osnameelementos com umvrrp-grouppai...//track/priority-hold-timeseleciona, abaixo do pai do nó de contexto, todos ospriority-hold-timeelementos com umtrackpai.
Nota da estrutura do robô:
No contexto do Get Element Textcomando da biblioteca XML Robotframework, o XPath deve ser relativo ao nó de origem ( ${output}no seu caso). XPaths absolutos, como //prioritynão são permitidos lá.
Veja também
- Diferença entre "//" e "/" no XPath?
- Qual é a diferença entre .// e // * em XPath?
- Qual é o significado de .// em XPath?
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
George Harrison ficou chateado por suas letras de 'Hurdy Gurdy Man' de Donovan não terem sido usadas