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

相关推荐
纪伊路上盛名在36 分钟前
python5.1 数据类dataclass
python·面向对象编程·oop
用户7188417507837 分钟前
深究 Python 中 int () 函数为何无法转换含小数点的字符串
python
on_pluto_1 小时前
LLaMA: Open and Efficient Foundation Language Models 论文阅读
python·机器学习
小二·1 小时前
mac下解压jar包
ide·python·pycharm
XXX-X-XXJ1 小时前
二:RAG 的 “语义密码”:向量、嵌入模型与 Milvus 向量数据库实操
人工智能·git·后端·python·django·milvus
桃子不淘气1 小时前
step1:创建项目
测试工具
AI小云2 小时前
【Python与AI基础】Python编程基础:模块和包
人工智能·python
努力努力再努力wz2 小时前
【C++进阶系列】:万字详解智能指针(附模拟实现的源码)
java·linux·c语言·开发语言·数据结构·c++·python
小蕾Java3 小时前
Python详细安装教程(附PyCharm使用)
开发语言·python·pycharm
weixin_307779133 小时前
使用AWS IAM和Python自动化权限策略分析与导出
开发语言·python·自动化·云计算·aws