Comment puis-je simuler en appuyant sur entrée dans un champ de saisie avec Capybara et ChromeDriver?
J'ai le texte suivant méthode d'aide à la saisie d'une chaîne de caractères dans un champ de saisie et appuyez sur la touche entrée, mais il semble que la touche entrée n'est jamais pressé. Je vois la chaîne saisie dans le champ de saisie, mais les événements qui ont lieu à appuyer sur la touche enter n'est jamais arrivé.
Je l'ai testé dans un navigateur sur la touche entrer correctement les feux de la événements attendus. Je ne suis pas sûr de ce que je suis absent.
def fill_and_trigger_enter_keypress(selector, value)
page.execute_script %Q(
var input = $('#{selector}');
input.val('#{value}');
input.trigger("keypress", [13]);
)
end
EDIT:
J'ai aussi essayé le suivant en vain:
find('#q_name').native.send_keys(:return)
find('#q_name').native.send_keys(:enter)
Ils ne provoquent pas d'erreur, mais toujours pas de touche entrée enfoncée.
InformationsquelleAutor Eric M. | 2012-06-03
Vous devez vous connecter pour publier un commentaire.
fonctionne pour moi. Je n'ai pas de nom ou l'id de mon domaine, mais le type est entrée alors j'ai utilisé quelque chose comme
fonctionne parfaitement bien!
NoMethodError: undefined method
send_keys " pour "5":String` erreur.Ces jours-ci (Capybara version 2.5+), vous pouvez simuler
<enter>
clé de la façon suivante:La
\n
est très important ici.Habituellement, lorsque vous exécutez la page.execute_script, vous obtenez les mêmes résultats que si vous étiez en cours d'exécution que dans la page de la console. Essayez d'exécuter manuellement dans la console et voir si vous obtenez les résultats escomptés. C'est généralement ce que je fais.. le métier le besoin du code js dans le navigateur de la fenêtre de console et le coller dans le capybara code quand il est au travail, à l'aide de execute_script.
Capybara n'a pas de support natif pour une send_keys type d'événement. Vous pourriez être en mesure de descendre en sélénium de le faire, ou vous pouvez essayer ce petit bijou https://github.com/markgandolfo/send-keys
Il fonctionne pour moi
$('form.css-class/#form_id')
n'est pas valide jQuery - en cours d'exécution, il renvoie une erreur.$('form.css-class#form_id')
@Page.selector.send_keys :return
Cela fonctionne pour moi, où
selector
est l'élément dans votre page objetélément
:selector, '<css selector>'