Não consigo automatizar o clique do comando - Webdriver Ruby - Cucumber

@stefanteixeira Era isso mesmo… Tinha o dropdown do id grouptab_1 que estava ficando em cima do botão Save. Depois da alteração da step_definitions conseguir o clique no botão Save.
Obrigado pelas dicas e paciência de todos.

Quando(/^clicar o botão "([^"]*)"$/) do |botaoSave| 
   @navegador.find_element(:xpath, "(//input[@id='SAVE'])[2]").click   
end

@davidson-jacob aparentemente, o 2º botão de Salvar não tem nenhum elemento “na frente”, mas se tentar Salvar com o 1º botão vai ocorrer o mesmo erro. Agora que você ajustou o mapeamento do elemento, o ideal é que você consiga interagir com qualquer um dos botões de Salvar (e qualquer outro elemento da tela que seja necessário).

Caso aconteça novamente com outros elementos (comigo já aconteceu com bastante frequência em alguns projetos) sugiro:

Se quiser, podes tentar uma das estratégias acima testando com o botão save[1], espero que ajude neste caso e em próximos, se ocorrer ;)

– Samuel Lucas

@samuellucas Realmente estou tendo problemas para localizar o elemento. Estou usando outro exemplo e ainda não conseguir achar onde está o erro.
Step defintions

Quando(/^clicando no botão Add to cart "([^"]*)"$/) do |botaoAdd|
  #el = @navegador.find_element(id: "add_to_cart")
  el = @navegador.find_element(name: 'Submit')
  #@navegador.action.context_click(el).perform
  @navegador.action.move_to(el).click
end

Código do botão Add to cart

<div class="box-cart-bottom">
<div>
	<p id="add_to_cart" class="buttons_bottom_block no-print">
		<button type="submit" name="Submit" class="exclusive">
			<span>Add to cart</span>
		</button>
	</p>
</div>

Erro exibido:

 E clicando no botão Add to cart "add_to_cart"                                                                     # features/step_definitions/realizarCompra.rb:62
      no such element: Unable to locate element: {"method":"name","selector":"Submit"}
        (Session info: chrome=60.0.3112.113)

@davidson-jacob

Já tentou buscar por id: 'add_to_cart'? Também não entendi a necessidade dessa action move_to, com que intuito vc usou isso?

@stefanteixeira Pelo comando @navegador.find_element(:id, ‘add_to_cart’).click não é possível encontrar o elemento.

O no such element: Unable to locate element: {"method":"id","selector":"add_to_cart"}
        (Session info: chrome=60.0.3112.113)

@davidson-jacob ah cara, agora que eu vi a página, esse botão tá em uma nova janela, vc precisa “mudar” pra essa janela pra poder interagir com os elementos dela.

No WebDriver em Ruby tem que pesquisar como fazer… Pesquisa aí no Google “switch window webdriver ruby” pra mudar pra janela nova, depois que conseguir aí sim busca por esse botão.

PS: Pq vc não usa o Capybara? É muito simples e ridiculamente fácil fazer essas coisas. Se vc pesquisar por “capybara” no próprio Agile Testers vc vai encontrar um monte de tutoriais, é bem tranquilo, escreve menos código e funciona muito bem. Uso desde o início do ano e não troco por nada, meus testes são bem estáveis e não me dão muita dor de cabeça.

@stefanteixeira Estou estudando automação, pode ser qualquer framework. Valeu pela dica.

Saquei… Capybara é o mais usado em Ruby e o projeto é bem ativo, estão sempre com features novas.

@stefanteixeira Show de bola o framework Capybara. Conseguir criar vários scripts. Teve duas dúvidas que ainda não conseguir resolver. Valeu pela dica.

Log in to reply

Looks like your connection to Agile Testers was lost, please wait while we try to reconnect.