2016-11-17 3 views
0

Ich fange an, Tests mit behath zu erstellen, um drupal Webseiten zu testen.Behat & Mink - Kann nicht finden Link zur Klasse

In meinen Tests möchte ich einen Link (mit Bild) sehen und später einen Klick darauf simulieren.

1 - Wenn ich einen Grund Link als habe "<a href="...">My text</a> mit: ich den Link sehen soll "My Text", es funktioniert

2 - Wenn ich einen Link als <a class="myclass" href="...">My text</a> (myclass verwendet wird. ein Bild mit CSS angezeigt werden), mit: soll ich den Link „Mein Text“ finde es funktioniert nicht ich verstehe nicht, warum

3 - Also, ich versuche eine andere Methode, mit. die Klasse des Elements: Ich sollte eine ".block-forward .b sehen loc-other "Element, es funktioniert! Aber manchmal habe ich keine spezifische CSS für mein Element.

Schließlich habe ich einige Probleme, was zu finden setzen statt: Element oder: link (Ich habe viele Dokumente und Fragen lesen)

Vielen Dank für jede Hilfe

+0

nicht sehr klar, wenn Sie ein Problem im zweiten Fall haben dann den HTML-Schnipsel des Elements fügen Sie das Bild mit src-Attribute und dem Link mit href-Attribute zu sehen. Wenn Sie eine IDE wie phpstorm verwenden, sehen Sie den Parameter, der für die automatische Vervollständigung in der Methodendokumentation erforderlich ist. Andernfalls müssen Sie selbst nach der Methode suchen und die Methodendokumentation lesen. – lauda

+0

Wenn das, was der Link enthält (der Text) nicht ändert, dann sollte es funktionieren. Ich sehe nicht, wo .block-forward .bloc-andere in der Verbindung ist, können Sie Ihre Frage bearbeiten und einen HTML-Schnipsel mit einem größeren Block hinzufügen, mit und ohne das Bild zu sehen, was ändert. – lauda

Antwort

0

Mit anderen Worten, mit eine Verbindung ohne Klasse:

<a href="...">my text</a> 

alle Methoden arbeiten:

ich sollte den Link "Mein Text" sehen

Ich soll ein ".block-forward .bloc-other" element siehe

mit einer Link & Klasse: mein Text beide Test noch nicht funktioniert.

Ich versuchte auch einen benutzerdefinierten Test zu verwenden, mit $page->findLink($element) oder $page->find("named", array("link",$element)) aber es funktioniert auch nicht.

Wenn ich mit Firebug inspizieren die <a>, ich habe:

.flag-favoris a::before { 
    content: ""; 
    font-family: "icomoon"; 
    font-style: normal; 
    font-variant: normal; 
    font-weight: normal; 
    line-height: 1; 
    text-transform: none; 
} 
.print-page::before, .forward-page::before, .flag-favoris a::before { 
    font-size: 1.2em; 
} 
0

Hier mein exemple OK:

<div class="content"> 
    <p><a href="#top-content">Top of page</a></p> 
</div> 

Und hier der Link, dass ein nicht zugreifen kann:

<div class="content"> 
    <span class="flag-wrapper flag-favoris flag-favoris-3"> 
     <a rel="nofollow" class="flag flag-action flag-link-toggle unflagged flag-processed" title="" href="/flag/flag/favoris/3?destination=node/3&amp;token=sdgsMpveGHPQ0B6YrSMo74HGH-W14HDTIpIzUhtCR-Y">Add to favorite</a> 
     <span class="flag-throbber">&nbsp; 
     </span> 
    </span> 
</div> 
0

Um den Link zu finden, die Sie suchen für Sie einen CSS-Selektor wie verwenden können:

.flag-favoris a[href*=favoris] 

oder

.flag-favoris a 

oder

.content .flag-favoris a 

Unter der Annahme, dass flag-favoris Klasse Favoritenbereich Bezug nimmt, dann ist eine gute Klasse zu verwenden.

+0

Danke Lauda. Aber wenn ich testen: Ich sollte ein „.flag-FAVORIS ein“ siehe Element, es ist nicht (gleiche Problem mit der ersten Methode) –

+0

Ich habe es einen anderen Wähler versuchen nicht funktioniert, auch wenn Sie keine Iframes haben in Die Seite. – lauda

+0

nicht besser :( Ich habe keine Iframe. –

Verwandte Themen