📜  python selenium 获取样式 - Python (1)

📅  最后修改于: 2023-12-03 15:04:08.507000             🧑  作者: Mango

Python Selenium 获取样式

在Web自动化测试中,经常需要获取Web页面元素的样式,例如元素的背景颜色、字体大小、边框样式等等。本文将介绍如何使用Python和Selenium来获取Web元素的样式。

前提条件

在使用Python和Selenium获取Web元素的样式之前,需要先配置好相关环境。具体步骤如下:

  1. 安装Python

    在官网https://www.python.org/downloads/下载安装包,安装好后将python.exe所在的路径加入系统环境变量PATH中。

  2. 安装Selenium

    打开命令行窗口,运行以下命令:

    pip install selenium
    
  3. 下载浏览器驱动

    下载浏览器对应版本的驱动,并将驱动所在的路径加入系统环境变量PATH中。例如,下载Chrome浏览器的驱动(chromedriver.exe)后,将该文件所在的路径添加到环境变量PATH中。

获取样式
  1. 创建WebDriver对象

    使用Selenium之前,需要先创建WebDriver对象。例如,要使用Chrome浏览器,可以在Python代码中创建如下的WebDriver对象:

    from selenium import webdriver
    
    driver = webdriver.Chrome()
    
  2. 定位元素

    使用WebDriver对象的find_element方法定位要获取样式的元素。例如,如下代码定位id为"element_id"的元素:

    element = driver.find_element_by_id("element_id")
    
  3. 获取样式属性

    使用WebElement对象的get_attribute方法获取元素的样式属性。例如,如下代码获取元素的背景颜色:

    background_color = element.value_of_css_property("background-color")
    

    在上面的代码中,"background-color"是CSS样式属性名。可以根据需要获取其他样式属性,例如"font-size"、"border-style"等。另外,要注意CSS属性名的大小写。

完整代码如下:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")

element = driver.find_element_by_id("su")
background_color = element.value_of_css_property("background-color")
font_size = element.value_of_css_property("font-size")

print("background color: ", background_color)
print("font size: ", font_size)

driver.quit()

执行代码后,会输出元素的背景颜色和字体大小。

总结

Python和Selenium提供了一种简单易用的方法获取Web元素的样式。通过上面的示例代码,可以快速了解如何定位元素和获取样式属性。需要注意的是,这种方法只能获取到通过CSS样式表或style属性设置的样式属性,不能获取到通过JavaScript动态设置的样式。