5

Ich schreibe ein Automatisierungstestskript mit Robot Framework & Selenium2Library zum Testen unserer Webanwendung (in .txt Format). Einer meiner Testfälle besteht darin, das CSS-Style-Attribut eines HTML-Tags zu überprüfen.Wie finde ich das CSS-Stil-Attribut eines bestimmten HTML-Elements mit dem Robot Framework?

Gibt es in Robot Framework ein bestimmtes Schlüsselwort, um das CSS-Stilattribut eines HTML-Elements zu erhalten?

Hier ist mein Testszenario:

<div id="check_style" style="width:20px;height:20px;background-color:#ffcc00;"></div> 

Jetzt habe ich die Hintergrundfarbe dieses speziellen HTML-Tag in eine Variable ${bg_color} zu speichern. Gibt es in Robot Framework ein bestimmtes Schlüsselwort für diesen Prozess?

Können Sie bitte einen effektiven Weg vorschlagen, um mit dieser Situation umzugehen?

I think we can make use of this javascript function for the above mentioned purpose :

document.getElementById("check_style").style["background-color"]

But how to make use of this particular function to store the value of background-color inot a variable ${bg_color} ?

(I have tried to execute ${bg_color} = Execute Javascript document.getElementById("check_style").style["background-color"] , but didn't work !)

Antwort

3

können Sie das Stichwort Selenium2Library Get Element Attribute mit dem Attribut style erhalten:

| | ${style}= | Get element attribute | [email protected] 

Sie können dann entweder einen regulären Ausdruck verwenden, um die Hintergrundfarbe Attribut oder tun einige zusätzliche Analyse zu finden. Letzteres wäre in Python einfacher als mit Robot-Keywords.

Zum Beispiel, wenn Sie reguläre Ausdrücke verstehen, könnte etwas wie das Folgende funktionieren. Natürlich wirst du wahrscheinlich etwas kugelsicheres hinzufügen wollen.

Hinweis: Sie erhalten möglicherweise nicht den gleichen literalen Wert wie im Raw-HTML. Zum Beispiel, auf meinem Rechner ${color} kommt wieder als rgb(255, 204, 0), obwohl die Farbe in der HTML #ffcc00 ist.

+0

Ich habe versucht, mit "Get Element Attribute" Schlüsselwort .. Aber es gibt einen Wert **. Keine **! Auch, wie man ein bestimmtes css-Attribut nur unter Verwendung dieses Schlüsselworts abstrahiert (zB Hintergrund-Farbe)? [Ich benutze keine Python, schreibe Testfälle im '.txt' Format]. Können wir so etwas tun, um ein spezifisches Attribut zu erhalten: Element Element Attribut ID = check_style @ background-color? –

+0

@ArunRamachandran: Nein, Sie können 'Get Element Attribute' nicht verwenden, um' background-color' zu erhalten; 'background-color' ist kein Elementattribut. Sie können es verwenden, um den Stil zu erhalten, wie ich in meinem Beispiel gezeigt habe, und Sie können dann das Ergebnis analysieren, um die Hintergrundfarbe zu erhalten, auch wie ich in meiner Antwort gezeigt habe. –

+0

Danke für die Lösung! Aber können wir direkt reguläre Ausdrücke im Roboter-Framework verwenden (wenn Testfälle im '.txt' Format geschrieben werden)? Können wir in Testfällen auch reguläre Ausdrücke verwenden, selbst wenn wir keine Testfälle in Python schreiben? –