Selenium小记

Selenium中元素的get_attribute、get_property、text的区别

在定位到元素后,我们通常都会取用元素的值,在这里主要会用到get_attribute、get_property、text三个,那这三者又有什么区别呢,下面通过一段代码来了解。

from selenium.webdriver.common.by import By
from selenium import webdriver
import pytest
from time import sleep

def test_input_and_getText():
    options = webdriver.ChromeOptions() 
    options.add_experimental_option("excludeSwitches", ["enable-logging"])
    driver = webdriver.Chrome(options=options, executable_path=r'C:\Users\sg0100\Downloads\chromedriver_win32\chromedriver.exe')
    driver.get("https://www.baidu.com")
    driver.maximize_window()
    print("title: ",driver.title)

    ele1 = driver.find_element(By.ID,'kw')
    ele1.send_keys("Selenium")
    # sleep(3)
    print("ele1的text属性: ",ele1.text)
    print("ele1的attribute属性: ",ele1.get_attribute("value"))
    print("ele1的attribute属性: ",ele1.get_attribute("value"))
    print("ele1的property属性: ",ele1.get_property("id"))
    print("ele1的property属性: ",ele1.get_property("name"))

    sleep(3)

    ele2 = driver.find_element(By.ID,'su')
    print("ele2的text属性: ",ele2.text)
    print("ele2的attribute属性: ",ele2.get_attribute("value"))
    print("ele2的property属性: ",ele2.get_property("value"))
    print("ele2的property属性: ",ele2.get_property("id"))
    print("ele2的property属性: ",ele2.get_property("name"))
    sleep(3)
    
    ele3 = driver.find_element(By.LINK_TEXT,'设置')
    print("ele3的text属性: ",ele3.text)
    print("ele3的attribute属性: ",ele3.get_attribute("value"))
    print("ele3的property属性: ",ele3.get_property("value"))
    print("ele2的property属性: ",ele2.get_property("id"))
    print("ele2的property属性: ",ele2.get_property("name"))
    driver.quit()


if __name__ == "__main__":
    test_input_and_getText()

输出结果:
title: 百度一下,你就知道
ele1的text属性:
ele1的attribute属性: Selenium
ele1的attribute属性: Selenium
ele1的property属性: kw
ele1的property属性: wd
ele2的text属性:
ele2的attribute属性: 百度一下
ele2的property属性: 百度一下
ele2的property属性: su
ele2的property属性:
ele3的text属性: 设置
ele3的attribute属性: None
ele3的property属性: None
ele2的property属性: su
ele2的property属性:

可以看到,对于一些input类的元素对它们使用get_attribute和get_property是可以获取到元素属性值的,而对于一些元素本身是文字显示的就只有text才能获取到值。
另外,get_attribute和get_property也有区别,property是DOM中的属性,是JavaScript里的对象;而attribute是HTML标签上的特性,它的值只能够是字符串。
简单的说:

  • get_property 就是取元素属性的,该元素有id,有name,就可以通过该方法取。
  • get_attribute(“value”),就是取文本框中输入的内容或取元素属性值。
  • .text 属性,就是元素本身的文字显示。
回答: 根据引用中提到的信息,requests库是一个用于进行HTTP通信的Python库,它可以直接与谷歌浏览器驱动进行通信,驱动Chrome浏览器执行命令。然而,requests库本身并不涉及浏览器版本的问题。所以,如果您目前使用的浏览器版本过低,您可能需要升级浏览器版本,或者使用更新的谷歌浏览器驱动(chromedriver)来进行通信。请注意,具体的升级方法会根据您所使用的浏览器和操作系统的不同而有所不同。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [selenium 原理应用 - 利用 requests 模拟 selenium 驱动浏览器](https://blog.csdn.net/weixin_45674354/article/details/123055618)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [浏览器使用小记 – Content-Security-Policy](https://blog.csdn.net/alading2009/article/details/123972903)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [requests模块的使用](https://blog.csdn.net/apollo_miracle/article/details/84769941)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值