Klicken Sie auf das Bild, mit Capybara in Gurke
Ich bin versucht, klicken Sie auf ein Bild mit Capybara für eine Gurke testen, aber kann nicht einen Weg finden, wie Capybara, um das Bild als link.
Mein code für das Bild:
link_to(image_tag('ico_edit_16.png', alt: 'Edit', class: 'icon16', title: "Edit #{qualification.title}"), edit_qualification_path(qualification))
Denen zeigt sich, wie
<a href="/qualifications/1/edit">
<img class="icon16" title="Title" src="/images/ico_edit_16.png?1279303992" alt="Edit">
</a>
in die html, und ich habe nicht in der Lage zu finden, ein guter Weg, um zu verwenden, capybara, um klicken Sie auf das Bild.
Irgendwelche Vorschläge?
InformationsquelleAutor Josh Johnson | 2011-11-17
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollte dies funktionieren:
Alternativ-lookup basierend auf dem alt-text:
Hatte ich ein problem, wenn das Bild nicht erkannt wurde, weil es mehrere Elemente, die versteckt in der Seite mit der gleichen id. Versuchen Sie mit so etwas wie dieses.
Diesem Schritt löst das problem für mich. Sie haben die Verwendung von XPath-Ausdrücken übereinstimmen, ein element, dann finden seine Eltern. Ein Nachteil, obwohl, ist, dass dies möglicherweise nicht synchronisiert werden:
Wenn /^ich den link mit(?:| ein| eine| der|) "([^\"])" Bild(?:| innerhalb "([^\"])")$/
Beachten Sie auch, in Schienen (3.1.1 in meinem Fall), für Bilder, die ohne einen bestimmten :alt-Wert, ein Standard-alt-wird von der image_tag Helfer:
So zum Beispiel für die image-Datei "kitten.jpg" verwenden Sie
find("img[@alt='Kitten']").click
(beachten Sie groß - /Kleinschreibung und entfernen der Erweiterung).Verwendung dieses rails-Konvention, die Sie suchen können für beliebige Bild-links in Gurke/capybara.
ja, wenn man wie in meinem Fall in haml:
ist und Sie nicht wollen, verwenden Sie die id auf den link klicken und Sie werden mit Bildern, z.B. in meinem Fall, klicken Sie auf den link löschen müssen Sie deklarieren Sie eine Klasse und später können Sie die nächste code-klicken Sie auf das element, und zusätzlich, um zu bestätigen, modal-Betrieb: