Qual é a diferença entre / e // no xpath in selenium

Primeiro, esses símbolos são sempre usados ​​em uma "expressão de caminho", que é uma maneira de selecionar nós (geralmente elementos ou atributos) em uma árvore XML. As expressões de caminho consistem em uma ou mais "etapas" que direcionam o processador XPath ao longo de um ou mais ramos da árvore para os nós que serão selecionados.

Segundo, XPath é uma linguagem incorporada que sempre é usada em outra linguagem de programação que pode processar nós XML.

  • Quando / é usado sozinho, sem outros nomes ou etapas, ele se refere ao próprio documento XML.
  • Quando / é o primeiro símbolo da expressão, ele diz ao processador XPath para iniciar a pesquisa no elemento superior. No XML, há exatamente um elemento superior. Por exemplo:
/ início / próximo / último

procurará o elemento mais alto chamado start. Se ele não conseguir encontrar esse elemento, a pesquisa falhará e nenhum nó será encontrado. Se encontrado, ele continua pesquisando ao longo do caminho.

  • Quando / está dentro de uma expressão XPath, ele separa as etapas. Por exemplo:
  • início / próximo / último

    fará com que o processador XPath comece a procurar o elemento start, em seguida, qualquer elemento filho chamado next e qualquer elemento filho do próximo chamado last. Mas de onde ele começa a pesquisar? Bem, esse seria o nó de contexto atual e a especificação que depende do idioma que está usando XPath. Você receberá um erro se não houver nó de contexto.

    • Quando // é o primeiro símbolo de uma expressão, significa pesquisar o documento XML inteiro. Esta é realmente uma abreviação permitida na linguagem XPath.
    • Quando // separa etapas em uma expressão (você pode colocar // onde quer que ocorra /), isso significa pesquisar todos os descendentes da última etapa.

    XPath é uma linguagem muito poderosa (embora restrita em seu uso). Para usar toda a potência do XPath, recomendo o livro “XPath 2.0” de Michael Kay. É bastante técnico, mas oferece tudo.