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

相关推荐
aliceDingYM2 小时前
Linux python3.6安装mayavi报错
linux·python·ui
.生产的驴5 小时前
SpringBoot AOP切入点表达式
spring boot·后端·python
逆水寻舟6 小时前
算法学习记录2
python·学习·算法
B站计算机毕业设计超人6 小时前
计算机毕业设计Python深度学习美食推荐系统 美食可视化 美食数据分析大屏 美食爬虫 美团爬虫 机器学习 大数据毕业设计 Django Vue.js
大数据·python·深度学习·机器学习·数据分析·课程设计·推荐算法
码农超哥同学7 小时前
Python面试题:请解释 `lambda` 函数是什么,并举一个例子
开发语言·python·面试·编程
sssjjww7 小时前
python输出日志out.log相关问题(缓存机制)
java·python·缓存
Uluoyu7 小时前
python爬虫爬取中国国际招标有限公司
开发语言·爬虫·python
Python私教7 小时前
zdppy+onlyoffice+vue3解决文档加载和文档强制保存时弹出警告的问题
vue.js·python
菜鸟赵大宝7 小时前
【Python】Python中TODO的用法解析
python·pycharm
Narutolxy8 小时前
如何高效管理和迁移Python开发环境:从Conda到纯Python的转换指南
开发语言·python·conda