2016-10-24 1 views
2

J'ai un élément que j'aimerais utiliser sur node.trigger ("click") mais je ne suis pas sûr de trouver l'élément. c'est un link_to et je suis relativement nouveau pour les tests d'intégration. J'essaie de trouver une réponse à cette question.node.trigger ("click") - Capybara

est ici l'élément

<%= link_to '✚ Invite Another Team Member', "#email", data: { invitation_modal_add: "" } %> 

Voici mon test, je voudrais changer.

click_link "✚ Invite Another Team Member" 

Id aiment le remplacer par quelque chose comme ça

link.trigger("click") 

Parce que c'est ce que capybara me dit d'essayer le moment parce que je reçois cette erreur

Capybara::Poltergeist::MouseEventFailed: 
    Firing a click at co-ordinates [0, 0] failed. Poltergeist detected another element with CSS selector 'html.no-mobile.wf-loading.js.touch-events body.accounts.users.index div.jquery-modal.blocker' at this position. It may be overlapping the element you are trying to interact with. If you don't care about overlapping elements, try using node.trigger('click'). 

Répondre

1

Pour trouver l'élément que vous pouvez simplement faire

link = find(:link, "✚ Invite Another Team Member") 

Toutefois, avant de commencer à utiliser le déclencheur, vous devriez lire la partie du message d'erreur avant que - "si vous ne vous souciez pas des éléments qui se chevauchent". Si vous testez réellement votre application, vous vous souciez probablement des éléments qui se chevauchent, car ils peuvent empêcher votre utilisateur de cliquer sur le lien, et le fait qu'il essaie de cliquer sur le lien à 0,0 peut indiquer un problème avec votre mise en page. Vous devriez probablement essayer de définir une taille de fenêtre plus grande (option window_size lors de l'enregistrement de votre pilote - https://github.com/teampoltergeist/poltergeist#customization) afin que le lien ne soit pas chevauché, assurez-vous que le lien n'est pas entièrement masqué/replié ou utilisez execute_script avec JS pour faire défiler la page donc l'élément devient interactif. Si vous ne vous souciez pas vraiment d'un utilisateur pouvant réellement cliquer sur le lien, alors n'hésitez pas à utiliser #trigger