Pergunta

O XPath dos meus elementos estão se tornando extremamente difícil de ler.

// div [@ id = 'main_content'] / div [2] / div [2] / div [2] / div [4] / mesa / tbody / tr [2] / td / form / fieldset / P [1] / entrada

Seria bom se eu pudesse armazenar a maioria de que, como uma variável e usá-lo mais tarde como esta:

| assertElementPresent | $ {MyForm}. / Fieldset / p [1] / input |

É algo como isso é possível? Faria meus testes muito mais fácil de ler!

Foi útil?

Solução

Você realmente deve ancorar seus espressions selênio em ID de elementos em seu lugar. Em 2 meses, ninguém vai ter a menor idéia do que os pontos XPath para, especialmente se o teste é quebrado no momento que você precisa descobrir. Rotineiramente adicionar de identificação para elemento apenas para fazer o teste mais fácil. Aprendemos a aceitar que escrever código java de uma maneira especial para torná-lo testável, e eu acho que é ok para HTML também.

Outras dicas

Você poderia simplesmente escrever:

store | //div[@id='main_content']/div[2]/div[2]/div[2]/div[4]/table/tbody/tr[2]/td/form | myForm
assertElementPresent | xpath=${myForm}/fieldset/p[1]/input

Como disse Krosenvold, no entanto, longos XPaths pode ser muito frágil. Se a sua questão sobre a legibilidade em seu código, e quer todos os seus localizadores em um arquivo onde você pode fazer alterações em cascata, você pode querer considerar usando um mapa UI-Elemento.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top