Obrigado a todos que participaram!

Obrigado a todos que participaram!

Não lembro mais quem submeteu este desafio (vou colocar gradativamente aqui), mas um muito obrigado a você!

Como não vou colocar a resposta das outras pessoas aqui (mas nos próximos vai ter viu), segue somente a minha resposta e explicação.

Resposta padrão!

Se você notarem ambos os campos Username e Password com os seus 'repetir' tem IDs idênticos e atualizados a cada acesso a página.
Uma das possíveis soluções, e que eu apresento, é via XPath utilizando duas funções:
Nós podemos utilizar o texto dos labels para localizar a caixa de texto. O label tem como irmão uma div, onde esta tem um filho que é a caixa de texto.
Para localizar o texto da label iremos utilizar a função text(), ficando assim: //label[text()='Username']

Agora é necessário, a partir da label, localizar a caixa de texto. Podemos, nesta lógica, localizar o seu irmão (div) e depois localizar o input a partir dele.
Para isso usamos a função following-sibling, ficando assim: //label[text() = 'Username']/following-sibling::div/input

Como estamos no baseando pelo label e o restante da estrutura é igual, basta alterar o texto da label e seguir localizando os próximos campos.

Vídeo Explicativo

Trecho de código


O código abaixo foi escrito em Java utilizando o JUnit como suporte ao assertEquals

Os imports foram ignorados. Visualize o código completo neste link (clique com o botão direito e selecione 'Salvar como...')

							driver.findElement(By.xpath("//label[text() = 'Username']/following-sibling::div/input")).sendKeys("eliasn");
							driver.findElement(By.xpath("//label[text() = 'Username (repetir)']/following-sibling::div/input")).sendKeys("elias");
							driver.findElement(By.xpath("//label[text() = 'Password']/following-sibling::div/input")).sendKeys("12345");
							driver.findElement(By.xpath("//label[text() = 'Password (repetir)']/following-sibling::div/input")).sendKeys("12345");
		
							driver.findElement(By.id("submitBtn2")).click();
		
							assertEquals("Os campos não tem o mesmo valor!", driver.findElement(By.id("submitBtn2")).getText());