5

Web uygulamamızı test etmek için (.txt biçiminde) Robot Framework & Selenium2Library kullanarak bir otomasyon test komut dosyası yazıyorum. Test durumlarımdan biri, bir HTML etiketinin CSS stil özniteliğini kontrol etmeyi içerir.Robot Framework kullanarak belirli bir html öğesinin css stil özniteliğini nasıl bulabilirim?

Bir html öğesinin CSS stil özniteliğini elde etmek için Robot Çerçevesinde belirli bir anahtar kelime var mı?

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

Şimdi, bir değişken ${bg_color} içine bu özel html etiketi arka plan rengini saklamak zorunda:

İşte benim test senaryodur. Robot Framework'de bu işlemi yapmak için herhangi bir anahtar kelime var mı?

Lütfen bu durumun üstesinden gelmenin etkili bir yolunu önerebilir misiniz?

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

cevap

3

Sen stil niteliğini almak için Selenium2Library Get Element Attribute anahtar kelime kullanabilirsiniz:

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

Daha sonra arka plan rengi ayrıntısını bulmak için normal bir ifade kullanmak veya bazı ek ayrıştırma yapmak ya. İkincisi, python'da robot anahtar kelimelerden daha kolay olurdu. Örneğin, normal ifadeleri anlıyorsanız, aşağıdaki gibi bir şey işe yarayabilir. Örneğin; Tabii ki, muhtemelen bir kurşun geçirmezlik eklemek isteyeceksiniz.

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

Not: Ham HTML'de olduğu gibi aynı değişmez değeri elde edemeyebilirsiniz. Örneğin, ${color} makinemde, HTML'deki renk #ffcc00 olsa bile rgb(255, 204, 0) olarak geri gelir.

+0

“Element Attribute” anahtar sözcüğünü denedim .. Ama bir değer döndürüyor ** Yok Yok! Ayrıca, belirli bir css özniteliği yalnızca bu anahtar sözcüğün (örn. Arkaplan rengi) kullanılarak nasıl özetlenir? [Python kullanmıyorum, test senaryoları '.txt 'formatında yazıyorum). Belirli bir öznitelik elde etmek için böyle bir şey yapabilir miyiz Get Get Element Attribute id = check_style @ background-color'? –

+0

@ArunRamachandran: Hayır, 'arka plan rengi 'almak için' Element Nitelik Al 'özelliğini kullanamazsınız; "arkaplan rengi" bir öğe niteliği değildir. Örneğimde gösterdiğim gibi stili elde etmek için kullanabilirsiniz ve daha sonra cevabımda gösterdiğim gibi arka plan rengini elde etmek için sonucu ayrıştırabilirsiniz. –

+0

Çözüm için teşekkürler! Ancak, robot çerçevesindeki normal ifadelerden doğrudan yararlanabilir miyiz (eğer .txt formatındaki test senaryolarını yazıyorsam)? Test senaryolarında python yazmıyor olsak bile, düzenli ifadelerden yararlanabilir miyiz? –

İlgili konular