Sente-se no Trono do Selenium com Funções XPath
Funções XPath –
Existem 4 tipos de Funções XPath usadas para encontrar elementos difíceis. Alguns desses elementos podem conter Valores de Atributo que mudam. Os Tipos de Função XPath são
#1 Conjunto de Nós
#2 String
#3 Booleano
#4 Número
Este vídeo demonstra como encontrar elementos com Valores de Atributo dinâmicos.
O Livro Gratuito de Selenium cobre XPath (páginas 67 - 78)
► Transcrição
Introdução
O próximo AUT é o GitHub. Vamos inspecionar a Nota abaixo do Nome de Usuário. Aqui está um caso especial onde XPath ou Seletor CSS é nossa única opção e um exemplo perfeito para mostrar por que não devemos usar o Chrome DevTools para copiar XPath. Copiar um valor XPath funciona às vezes, mas não é confiável. Portanto, é melhor não clicar com o botão direito, Copiar e Copiar XPath e depois Colar XPath. Observe o valor do id.
Agora, vou recarregar a página. Copie o XPath novamente e cole o XPath. Você vê como o valor mudou após recarregar a página? Isso é chamado de valor de id dinâmico, onde o valor muda a cada vez. Este vídeo mostrará como lidar com valores dinâmicos usando Funções XPath.
Funções XPath
Existem 4 tipos de Funções XPath. No site da Oracle, vemos Conjunto de Nós, String, Booleano e Número. Nosso foco será nas Funções de String. Na nossa folha de dicas, eu as chamo de Correspondência de Padrão Parcial porque tudo que precisamos fazer é corresponder parte do Valor do Atributo. Eu ia demonstrar 3 funções, mas vou remover ends-with e então demonstrar starts-with e contains.
Voltando ao nosso AUT para a função starts-with. Escrevemos 2 barras para frente, o Nome da Tag é p, colchetes de abertura e fechamento, starts-with, parênteses de abertura e fechamento, símbolo @, o Nome do Atributo é id, vírgula, 2 aspas simples, e então escrevemos com o que o valor começa. O valor começa com descrição, então vamos escrever descrição entre as duas aspas. Bingo, aí está. Também podemos substituir starts-with e usar a próxima função contains. Ambas as funções funcionarão porque o valor começa com descrição e também contém descrição.
Remova starts-with e adicione contains. Você notou que encontramos 1 de 2? 1 de 2 não é bom o suficiente se estamos apenas procurando verificar a nota abaixo do Nome de Usuário. Ambos os elementos quase parecem iguais. Como encontramos 1 de 1 quando ambos os elementos têm p como tagName, atributo de classe com um valor de nota e um valor de id dinâmico?
Lembre-se da sessão anterior, usamos XPath com um operador Lógico E. Vamos olhar para ambos os WebElements. Uma nota refere-se ao nome de usuário e a outra nota refere-se ao endereço de e-mail. Podemos usar uma palavra ou podemos usar uma frase da nota. Dentro dos colchetes, escrevemos e contains, 2 parênteses, escrevemos um ponto, vírgula, 2 aspas simples, dentro das aspas, podemos escrever a frase completa Isso será seu nome de usuário e assim por diante. Agora, temos 1 de 1. No entanto, eu prefiro usar uma palavra única como nome de usuário e ainda temos 1 de 1.
Esta consulta está pedindo para encontrar “uma tag p que começa com um atributo id consistindo de um valor de descrição e contém o texto nome de usuário”. Também podemos substituir o ponto pela função text. No entanto, há casos em que text não funcionará. Vou criar um vídeo explicando a diferença entre usar um valor XPath usando um ponto e usando text. Ainda vemos 1 de 1. Se você optar por não escrever a palavra e, pode substituí-la pelos colchetes.
Vamos para o Tools QA e continuar com uma sintaxe diferente para a função text. Inspecione Primeiro nome dois pontos. Vemos um nome de tag strong, mas não vemos nenhum atributo. Escreva 2 barras para frente, strong, ambos os colchetes, text, 2 parênteses, igual, 2 aspas simples, Primeiro nome dois pontos, e bingo. Encontramos nosso elemento. É isso para Funções XPath.
Próximo, são os Eixos XPath.
#TreinamentoSelenium #FunçõesXPath #SeleniumWebDriver #AutomaçãoSelenium