¿Hay alguna manera de obtener el color de fondo de un elemento en el marco del robot de selenio? Estoy intentando obtener el atributo pero no funciona y devuelve None

Aquí está la html

<li pl-repeat="(slideId, slideContents) in slides" pl-click="viewSlide(slideContents['w-l'].url, slideId)" pl-class="{checked : slideId == viewSlideKey}" class="pl-scope checked"><span class="pl-binding">Draft</span></li>
1
testing_kate 27 jul. 2016 a las 14:18

2 respuestas

La mejor respuesta

Puedes hacerlo usando javascript return document.defaultView.getComputedStyle(document.getElementByID("ID"),null)['background-color']

Si es una clase, entonces lo mismo pero document.getElementsByClassName("class-name")[0],null)['background-color']

2
user4990011user4990011 27 jul. 2016 a las 11:21

Aunque puede usar JavaScript para obtener el estilo calculado, creo que la forma idiomática de obtener el estilo sería usar la API de Selenium. Una vez que obtenga un referencia de webelement mediante Obtener Webelement, puede utilizar el value_of_css_property método para obtener el color de fondo.

Open Browser    https://www.stackoverflow.com    gc
${elem}    Get Webelement    css=.post-tag
${bg color}    Call Method    ${elem}    value_of_css_property    background-color

Resultado: $ {bg color} = rgba (225, 236, 244, 1)

Una diferencia que noté aquí en esta prueba es que value_of_css_property devolvió el valor rgba mientras que getComputedStyle devolvió solo rgb.

Selenium2LibraryExtension intenta facilitar este proceso implementando El color de fondo del elemento debe ser. value_of_css_property también se usa allí.

3
ombre42 27 jul. 2016 a las 15:32