• selenium 元素信息


    概述

    当通过selenium定位到一个具体的元素后,可以获取该元素的许多详细信息,比如该元素的css样式、标签名、文本以及获取该元素的子元素等等。

    功能

    元素是否显示

    element.is_displayed()
    
    • 1

    此方法用于检查连接的元素是否正确显示在网页上。返回一个布尔值,如果连接的元素显示在当前的浏览器上下文中,则为True;否则返回False。

    >>> from selenium import webdriver
    >>> from selenium.common import By
    
    >>> driver = webdriver.Chrome()
    >>> driver.get("https://www.example.com")
    >>> element = driver.find_element(By.TAG_NAME, "p")
    # 判断该元素是否显示
    >>> element.is_displayed()
    True
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    元素是否被选定

    element.is_selected()
    
    • 1

    此方法确定是否已选择引用的元素。此方法广泛用于复选框、单选按钮、输入元素和选项元素。返回一个布尔值,如果在当前浏览上下文中 已选择 引用的元素,则返回 True,否则返回 False。

    获取元素属性值

    element.get_attribute(name)
    
    • 1

    用于获取元素的属性值。比如name属性、id属性、class属性、href属性等等。

    >>> from selenium import webdriver
    >>> from selenium.common import By
    
    >>> driver = webdriver.Chrome()
    >>> driver.get("https://www.example.com")
    >>> element = driver.find_elements(By.TAG_NAME, "p")[1]
    >>> element = element.find_element(By.TAG_NAME, "a")
    # 获取href属性
    >>> element.get_attribute("href")
    'https://www.iana.org/domains/example'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    获取元素标签名

    element.tag_name
    
    • 1

    此方法用于获取在当前浏览上下文中 具有焦点的被引用元素的标签名。

    >>> from selenium import webdriver
    >>> from selenium.common import By
    
    >>> driver = webdriver.Chrome()
    >>> driver.get("https://www.example.com")
    >>> element = driver.find_element(By.TAG_NAME, "p")
    # 获取标签名
    >>> element.tag_name
    'p'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    获取元素文本

    element.text
    
    • 1

    获取特定元素渲染后的文本。

    >>> from selenium import webdriver
    >>> from selenium.common import By
    
    >>> driver = webdriver.Chrome()
    >>> driver.get("https://www.example.com")
    >>> element = driver.find_element(By.TAG_NAME, "p")
    # 获取元素文本
    >>> element.text
    'This domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission.'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    获取元素css样式

    element.value_of_css_property(property_name)
    
    • 1

    获取当前浏览上下文中元素的特定计算样式属性的值。

    >>> from selenium import webdriver
    >>> from selenium.common import By
    
    >>> driver = webdriver.Chrome()
    >>> driver.get("https://www.example.com")
    >>> element = driver.find_element(By.TAG_NAME, "p")
    # 获取元素的文字颜色
    >>> element.value_of_css_property("color")
    'rgba(0, 0, 0, 1)'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    获取元素矩形

    element.rect
    
    • 1

    用于获取参考元素的尺寸和坐标。提取的数据主体包含元素左上角的X轴位置、元素左上角的y轴位置、元素的高度、元素宽度。

    >>> from selenium import webdriver
    >>> from selenium.common import By
    
    >>> driver = webdriver.Chrome()
    >>> driver.get("https://www.example.com")
    >>> element = driver.find_element(By.TAG_NAME, "p")
    # 获取元素的矩形坐标
    >>> element.rect
    {'height': 60, 'width': 418, 'x': 32, 'y': 115.67500305175781}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    获取元素子元素

    element.find_element()
    
    • 1

    用于在父元素的上下文中查找匹配的子元素(WebElement)。

    >>> from selenium import webdriver
    >>> from selenium.common import By
    
    >>> driver = webdriver.Chrome()
    >>> driver.get("https://www.example.com")
    >>> element = driver.find_elements(By.TAG_NAME, "p")[1]
    # 获取元素的子元素
    >>> element = element.find_element(By.TAG_NAME, "a")
    >>> element.text
    'More information...'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
  • 相关阅读:
    Java之并发工具类的详细解析
    2023年的当下,应该学习Python哪个版本?哪个方向好?
    Java架构师面试必备题
    设计模式原则——单一职责原则(SPS)
    C++ 之多态(一)
    计算机毕业设计ssm基于java超市货架管理系统h848w系统+程序+源码+lw+远程部署
    易车:互联网造车定位称王还是镜花水月
    【深入理解C++】移动构造函数和移动赋值运算符
    文件操作 黑马教程(04)
    Linux内核(一)
  • 原文地址:https://blog.csdn.net/weixin_49346755/article/details/125622989