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的部分)

相关推荐
充钱大佬7 小时前
Python测试基础教程
python·log4j·apache
初心丨哈士奇10 小时前
Python 四大基础容器|列表篇
python
明理的信封10 小时前
AI 基础设施的“去 Python 化“:Rust 与 C# 的两条替代路径
人工智能·python·rust
麻雀飞吧12 小时前
2026年AI量化开发,先跑通小流程再加复杂功能
人工智能·python
daphne odera�12 小时前
PyCharm 中 Codex 插件启动失败:unknown variant default 的解决方法
python·chatgpt·pycharm
nbu04william12 小时前
Deepseek-api省token的用法
python·大模型·token·deepseek
测试老哥12 小时前
Pytest自动化测试详解
自动化测试·软件测试·python·测试工具·测试用例·pytest·接口测试
坚持学习前端日记13 小时前
国产化适配全流程适配英伟达本地开发
人工智能·python
源图客13 小时前
云途物流API开发-鉴权认证(Java)
java·网络·python
三川69814 小时前
Tkinter库的学习记录06-变量类别
python