5

Piszę skrypt testu automatyzacji za pomocą Robot Framework & Selenium2Library do testowania naszej aplikacji internetowej (w formacie .txt). Jednym z moich przypadków testowych jest sprawdzenie atrybutu stylu CSS tagu HTML.jak znaleźć atrybut stylu css określonego elementu html za pomocą Robot Framework?

Czy jest jakieś konkretne słowo kluczowe w Robot Framework, aby uzyskać atrybut stylu CSS elementu html?

Tu jest mój scenariusz testowania:

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

Teraz muszę przechowywać koloru tła tego konkretnego tagu html do zmiennej ${bg_color}. Czy jest jakieś konkretne słowo kluczowe w Robot Framework, aby wykonać ten proces?

Czy możesz zaproponować skuteczny sposób radzenia sobie z tą sytuacją?

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 !)

Odpowiedz

3

Można użyć słowa kluczowego Selenium2Library Get Element Attribute uzyskać atrybut stylu:

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

Następnie można użyć wyrażenia regularnego, aby znaleźć atrybut koloru tła lub zrobić kilka dodatkowych analizowania. Te ostatnie byłyby łatwiejsze do zrobienia w Pythonie niż za pomocą słów kluczowych robota.

Na przykład, jeśli znasz wyrażenia regularne, może działać coś takiego. Oczywiście prawdopodobnie będziesz chciał dodać kuloodporność.

| | ${style}= | get element attribute | [email protected] 
| | ${color}= | evaluate | re.search("background-color: *(.*?);", '''${style}''').group(1) | re 

Uwaga: możesz nie uzyskać tej samej wartości literalnej, co w surowym HTML. Na przykład na moim komputerze ${color} wraca jako rgb(255, 204, 0), mimo że kolor w kodzie HTML to #ffcc00.

+0

Próbowałem za pomocą słowa kluczowego "Pobierz element atrybut" .. Ale zwraca wartość **. Brak **! Ponadto, jak abstrakcyjny konkretny atrybut css tylko za pomocą tego słowa kluczowego (np. Kolor tła)? [Nie używam Pythona, piszę przypadki testowe w formacie '.txt'. Czy możemy zrobić coś takiego w celu uzyskania określonego atrybutu 'Get Element Attribute id = check_style @ background-color'? –

+0

@ArunRamachandran: nie, nie możesz użyć 'Get Element Attribute', aby uzyskać' background-color'; 'background-color' nie jest atrybutem elementu. Możesz go użyć, aby uzyskać styl, jak pokazałem w moim przykładzie, a następnie możesz przeanalizować wynik, aby uzyskać kolor tła, tak jak pokazałem w mojej odpowiedzi. –

+0

Dzięki za rozwiązanie! Ale czy możemy bezpośrednio użyć wyrażeń regularnych w środowisku robotów (jeśli piszę przypadki testowe w formacie '.txt')? Czy możemy używać wyrażeń regularnych w przypadkach testowych, nawet jeśli nie piszemy przypadków testowych w pythonie? –