Wie erkennt man, ob in Watir ein Element existiert?

7

Ich bin relativ neu bei Watir, kann aber keine gute Dokumentation (Beispiele) finden, um zu überprüfen, ob ein Element existiert. Es gibt natürlich die API-Spezifikationen, aber diese machen mir wenig Sinn, wenn ich kein Beispiel finde.

Ich habe beide Kombinationen ausprobiert, aber nichts scheint zu funktionieren ... if browser.image (: src "/media/images/icons/reviewertools/editreview.jpg") .existiert dann... if browser.image (: src "/media/images/icons/reviewertools/editreview.jpg").existiert? dann ...

Wenn jemand einen konkreten Vorschlag hat, wie dies zu implementieren ist, bitte helfen Sie! Danke!

    
Rijksband 18.03.2011, 22:42
quelle

3 Antworten

15

Es scheint, dass Ihnen ein Komma zwischen den Parametern fehlt.

Sollte

sein %Vor%

Sie können diese Seite auch in Zukunft nützlich finden, um zu wissen, welche Attribute werden unterstützt.

    
katmoon 19.03.2011 08:41
quelle
2

Scheint so, als ob Sie es richtig benutzen. Hier ist ein alter RDoc von Watir .

Funktioniert es nicht, weil Watir es nicht finden kann? Schwer zu sagen, da es keine Quelle oder keinen Link zu der Seite gibt, die getestet wird. Ich denke, ich verwende nur image.exists? . Im Allgemeinen treten folgende Fehler auf, wenn das Bild existiert, aber nicht gefunden wird:

  1. Das Wie ist nicht kompatibel mit dem Elementtyp. Es gibt einen Cheatsheet, um zu sehen, welche Objekttypen mit verschiedenen Attributen gefunden werden können hier .
  2. Das, was nicht stimmt. Du musst vielleicht ein bisschen damit spielen. Ziehen Sie in Betracht, eine Regex-Zeichenfolge wie browser.image (: src, /editreview.jpg/) zu versuchen, um sie zu vergleichen. Als letzten Ausweg, vielleicht verwenden Sie element_by_xpath, aber es gibt Wartungskosten damit.
  3. Der Standort ist nicht korrekt. Vielleicht ist das Element in einem Rahmen oder so ähnlich. browser.frame ("Detail"). image (: src, /editreview.jpg /).

Probieren Sie diese aus, aber bitte lassen Sie mich wissen, was funktioniert hat. Noch etwas, wonach suchen Sie? Wenn es Teil der Testkriterien ist, können Sie damit umgehen. Wenn Sie darauf klicken müssen, dann vergessen Sie die .exists? und klicke einfach darauf. Ruby wird dich wissen lassen, wenn es nicht da ist. Wenn Sie es brauchen, um Gnade zu sein, erfahren Sie mehr über beginnen / retten .

Viel Glück,

Dave

    
Dave McNulla 18.03.2011 23:20
quelle
2

Der von Ihnen gepostete Code sollte gut funktionieren. Edit: Hoppla, falsch. Wie Katmoon darauf hingewiesen hat, fehlt ein Komma.

%Vor%

Ein Problem, in das Sie geraten könnten, ist, wenn die von Ihnen angegebene Browservariable tatsächlich ein Element ist, das nicht existiert.

z.B.

%Vor%

Der obige Code wird eine Watir :: UnknownFrameException auslösen. Sie können dies umgehen, indem Sie zunächst prüfen, ob der Rahmen existiert oder den Code in einem Start- / Rettungsblock umgibt.

    
juan2raid 19.03.2011 00:08
quelle

Tags und Links