Selenium——获取元素和操纵元素的方法

1、获取元素的方法

1、通过id获取

python 复制代码
element = wd.find_element(By.ID,"id")

2、通过classname获取

python 复制代码
elements = wd.find_elements_by_class_name("plant")
for element in elements:
    print(element.text)

3、通过tagname获取元素

python 复制代码
elements = wd.find_elements_by_tag_name("span")
for element in elements:
    print(element.text)

find_element 和 find_elements 的区别

使用 find_elements 选择的是符合条件的 所有 元素, 如果没有符合条件的元素, 返回空列表

使用 find_element 选择的是符合条件的 第一个 元素, 如果没有符合条件的元素, 抛出 NoSuchElementException 异常

4、通过WebElement对象选择元素

WebDriver 对象选择元素的范围是整个web页面,而WebElement对象选择元素的范围是该元素的内部。

python 复制代码
element = wd.find_element(By.ID,"container")
elements = element.find_elements(By.TAG_NAME,"span")

等待元素出现:wd.implicitly_wait(10)

python 复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By

wd = webdriver.Chrome() #控制器
wd.implicitly_wait(10)  # 等待元素出现
wd.get("https://www.byhy.net/_files/stock1.html")

insert_element = wd.find_element(By.ID,"kw")    #搜索框
insert_element.send_keys("四川")  #在搜索框中输入元素
submit_element = wd.find_element(By.ID,"go")    # 查询按钮
submit_element.click()  #点击查询

element = wd.find_element(By.ID,"1")    #在查询结果中查找id为1的元素
print(element.text)
2、操控元素的方法

1、输入操作

python 复制代码
element.clear()	# 清除输入框中的元素
element.send_keys()

2、获取文本信息

python 复制代码
print(element.text)

3、点击操作

python 复制代码
element.click()

4、获取元素属性

python 复制代码
element = wd.find_element(By.ID, 'input_name')
print(element.get_attribute('placeholder'))

5、获取整个元素对应的HTML

python 复制代码
要获取整个元素对应的HTML文本内容,可以使用 element.get_attribute('outerHTML')
如果只是想获取某个元素内部的HTML文本内容,可以使用 element.get_attribute('innerHTML')

6、获取输入框里面的文字

python 复制代码
element.get_attribute('value')

7、获取元素文本内容2

通过WebElement对象的 text 属性,可以获取元素 展示在界面上的 文本内容。

但是,有时候,元素的文本内容没有展示在界面上,或者没有完全完全展示在界面上。 这时用WebElement对象的text属性,获取文本内容,就会有问题。

出现这种情况,可以尝试使用 element.get_attribute('innerText') ,或者 element.get_attribute('textContent')

使用 innerText 和 textContent 的区别是,前者只显示元素可见文本内容,后者显示所有内容(包括display属性为none的部分)

相关推荐
万邦科技Lafite5 分钟前
实战演练:通过API获取商品详情并展示
大数据·数据库·python·开放api接口
愈努力俞幸运18 分钟前
uv教程 虚拟环境
python·uv
IMER SIMPLE23 分钟前
人工智能-python-深度学习-经典网络模型-LeNets5
人工智能·python·深度学习
企业软文推广33 分钟前
奥迪A5L×华为:品牌营销视角下的燃油车智能突围战!
python·华为
Pocker_Spades_A1 小时前
Python快速入门专业版(十五):数据类型实战:用户信息录入程序(整合变量、输入与类型转换)
数据库·python
IMER SIMPLE1 小时前
人工智能-python-深度学习-神经网络-GoogLeNet
人工智能·python·深度学习
小宁爱Python1 小时前
Django 从环境搭建到第一个项目
后端·python·django
带娃的IT创业者2 小时前
如何开发一个教育性质的多线程密码猜测演示器
网络·python·算法
luckys.one7 小时前
第9篇:Freqtrade量化交易之config.json 基础入门与初始化
javascript·数据库·python·mysql·算法·json·区块链
大翻哥哥9 小时前
Python 2025:量化金融与智能交易的新纪元
开发语言·python·金融