selenium - rails - Pepino y Capibara, haciendo clic en un elemento sin enlace o botón
selenium rails (2)
Estoy intentando probar un editor en el lugar usando Cucumber / Capybara / Selenium stack, pero mi problema es que el editor se activa haciendo clic en un div y no en un enlace o botón. Parece que no puedo entender cómo lograr que Capibara haga esto. ¿Hay alguna forma de hacer esto?
Además de poder hacer clic en elementos de botón como @Jim Mitchener explicó, también puede hacer clic en una parte de un texto de la siguiente manera:
# WhenI click on the text "Sign in"
When(/^I click on text "(.*?)"$/) do |text|
click_text(text)
end
def click_text(text)
elem = find(:xpath, "//*[contains(translate(text(), ''#{text.upcase}'', ''#{text.downcase}''), ''#{text.downcase}'')]", match: :first, wait: false)
scroll_to(elem, -200)
elem.click
end
Esta función auxiliar hace lo mismo que find(selector).click
, encuentra el elemento de texto.
Encontré este artículo muy bueno, explica diferentes tipos de pasos que puedes escribir en pepino.
Puede hacer clic en un elemento a través de Capybara::Element.click
. web_steps.rb
siguiente para esto en mi web_steps.rb
para hacer clic en divs.
When /^(?:|I )click within "([^"]*)"$/ do |selector|
find(selector).click
end
También hay Element.trigger(''mouseover'')
que parece habilitar el vuelo Element.trigger(''mouseover'')
aunque no funcione con Selenium.
También es muy probable que necesite decorar su característica / escenario con la etiqueta @javascript
proporcionada por @javascript
.