运维侠职场日记23:用DeepSeek三天通关详解新手必看!保姆级教学Python+Selenium手把手教学网页自动化基础元素定位方法

一. 痛点

运维侠小白有下面烦恼,听说deepseek可以帮助提升学习python的效率,可是deepseek给的代码也报错,怎么办?

在这里插入图片描述
在这里插入图片描述

欢迎阅读:Python邮件自动化大全打工人逆袭

deepseek生成的代码也有可能报错,例如:

⏰执行报错:由提示得知,是少导入需要的模块,但是补全,还是报错,这就是deepseek的局限性。需要继续发问,才能解决。

多尝试,困难才会被克服

学习就像追妹子,你只能看到背影,但只要坚持日积月累的付出,迟早她整个人属于你❤。
在这里插入图片描述

二.基础:准备工作

⚠️避免报错:

  1. 文件路径 没有写绝对路径默认是处理python代码所在路径的文件,因此需要把代码文件放到这个处理的文件同一文件夹里。

(1)安装 python-selenium模块

💻 代码:在命令行终端执行

# 安装必要库(命令行执行)
# pip install selenium

在这里插入图片描述

(2)核心操作汇总表:浏览器方法和属性总结

|| /属性
|–|–|–|–|–|
| | || | |

方法(属性)作用示例代码
back()浏览器后退driver.back()
forward()前进driver.forward()
refresh()刷新页面driver.refresh()
title()获取当前页面标题print(driver.title)
current_url()获取当前URLprint(driver.current_url)
maximize_window()窗口最大化driver.maximize_window()
set_window_size(w,h)设置窗口大小driver.set_window_size(1200,800)
quit()关闭浏览器driver.quit()

三.进阶:元素定位方法详解

⚠️避免报错:

  1. 文件路径 没有写绝对路径默认是处理python代码所在路径的文件,因此需要把代码文件放到这个处理的文件同一文件夹里。
  2. 修改部分代码 可以举一反三,这个也能生成合同第一页。

(1)概览

📦语法:find_element(By.策略, “值”)

💻 代码:

from selenium.webdriver.common.by import By

# 八大金刚定位法
By.ID
By.NAME
By.CLASS_NAME
By.TAG_NAME
By.LINK_TEXT       # 完整链接文本
By.PARTIAL_LINK_TEXT  # 部分链接文本
By.XPATH
By.CSS_SELECTOR

如图:

(2)通过ID定位

✅ 元素定位之后我们有其他操作,比如,输入文字、点击搜索,为简化方便理解只展示定位。
💻 代码:

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

# 启动Edge浏览器
driver = webdriver.Edge()

# 1.打开网页
#driver.get("https://le.ouchn.cn/courseDetails/CSMC0000012933")
driver.get("https://www.baidu.com/")


# 2.定位到搜索框元素
play_button = driver.find_element(By.ID, "kw")
#play_button.click()

print(play_button)


# 关闭浏览器
#driver.quit()

如图:
在这里插入图片描述

在这里插入图片描述

(3)通过NAME定位

💻 代码:

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

# 启动Edge浏览器
driver = webdriver.Edge()

# 1.打开网页
#driver.get("https://le.ouchn.cn/courseDetails/CSMC0000012933")
driver.get("https://www.baidu.com/")


# 2.定位到搜索框元素
play_button = driver.find_element(By.NAME, "wd")
#play_button.click()

print(play_button)
# 等待视频播放
time.sleep(100)

# 关闭浏览器
#driver.quit()

如图:
在这里插入图片描述

(4)通过CLASS_NAME定位(班级名定位)

💻 代码:

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

# 启动Edge浏览器
driver = webdriver.Edge()

# 1.打开网页
#driver.get("https://le.ouchn.cn/courseDetails/CSMC0000012933")
driver.get("https://www.baidu.com/")


# 2.定位到搜索框元素
search_button = driver.find_element(By.CLASS_NAME, 's_btn')
search_button.click()  # 点击搜索按钮
#play_button.click()

# 等待视频播放
time.sleep(100)

# 关闭浏览器
#driver.quit()

如图:
在这里插入图片描述

(5)通过TAG_NAME定位(标签名定位)

💻 代码:

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

# 启动Edge浏览器
driver = webdriver.Edge()

# 1.打开网页
#driver.get("https://le.ouchn.cn/courseDetails/CSMC0000012933")
driver.get("https://www.baidu.com/")


# 2.定位到搜索框元素
news_link = driver.find_element(By.LINK_TEXT, '新闻')
news_link.click()  # 点击进入新闻页面
driver.back()  # 返回百度首页

# 等待视频播放
time.sleep(100)

# 关闭浏览器
#driver.quit()

如图:

在这里插入图片描述

(6)通过LINK_TEXT定位(全文链接定位)

原理:通过超链接的 完整显示文本 定位。
百度示例:“新闻”链接

💻 代码:

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

# 启动Edge浏览器
driver = webdriver.Edge()

# 1.打开网页
#driver.get("https://le.ouchn.cn/courseDetails/CSMC0000012933")
driver.get("https://www.baidu.com/")


# 2.定位到搜索框元素
news_link = driver.find_element(By.LINK_TEXT, '新闻')
news_link.click()  # 点击进入新闻页面
driver.back()  # 返回百度首页

# 等待视频播放
time.sleep(100)

# 关闭浏览器
#driver.quit()

(7)通过PARTIAL_LINK_TEXT定位(部分链接定位)

原理:通过超链接的 部分文本 定位,类似模糊搜索。
百度示例:包含“地”字的链接(如“地图”)

💻 代码:

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

# 启动Edge浏览器
driver = webdriver.Edge()

# 1.打开网页
#driver.get("https://le.ouchn.cn/courseDetails/CSMC0000012933")
driver.get("https://www.baidu.com/")


# 2.定位到搜索框元素
map_link = driver.find_element(By.PARTIAL_LINK_TEXT, '地')
map_link.click()  # 点击进入百度地图
driver.back()  # 返回首页

# 等待视频播放
time.sleep(100)

# 关闭浏览器
#driver.quit()

(8)通过XPATH定位(路径定位)

原理:通过元素的层级路径定位,类似文件目录。
百度示例:精准定位搜索按钮

💻 代码:

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

# 启动Edge浏览器
driver = webdriver.Edge()

# 1.打开网页
#driver.get("https://le.ouchn.cn/courseDetails/CSMC0000012933")
driver.get("https://www.baidu.com/")


# 2.定位到搜索框元素
# 写法1:绝对路径(脆弱不推荐)
button = driver.find_element(By.XPATH, '/html/body/div[1]/div[1]/div[5]/div/div/form/span[2]/input')

# 写法2:相对路径 + 属性组合(推荐!)
smart_xpath = driver.find_element(By.XPATH, '//input[@id="su" and @class="s_btn"]')
smart_xpath.click()

# 等待视频播放
time.sleep(100)

# 关闭浏览器
#driver.quit()

(9)通过CSS_SELECTOR定位(样式选择器)

原理:通过CSS样式规则定位,类似装修设计图。
百度示例:定位设置菜单

💻 代码:

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

# 启动Edge浏览器
driver = webdriver.Edge()

# 1.打开网页
#driver.get("https://le.ouchn.cn/courseDetails/CSMC0000012933")
driver.get("https://www.baidu.com/")


# 2.定位到搜索框元素
# 定位右上角"设置"链接
settings = driver.find_element(By.CSS_SELECTOR, '#s-usersetting-top')
settings.click()

# 选择"高级搜索"(下拉菜单中的选项)
advanced_search = driver.find_element(By.CSS_SELECTOR, '.setpref[href="//www.baidu.com/gaoji/advanced.html"]')
advanced_search.click()

# 等待视频播放
time.sleep(100)

# 关闭浏览器
#driver.quit()

⏰提示:一种需求可以有多种类型代码实现,实际中,我们可以从中选择,最适合的。应用场景,如下:

企业合同管理系统基础模板

销售订单自动生成系统

财务报销单模板生成器

课程报名信息登记表

通过这个模板生成器,后续可以结合客户数据自动填充生成完整合同,实现办公自动化流程的完整闭环。

四.实战案例集锦:

自动搜索“人工智能发展现状”

💻 代码:

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

driver = webdriver.Edge()
driver.get("https://www.baidu.com")

# 1. 通过ID定位搜索框并输入内容
driver.find_element(By.ID, 'kw').send_keys("人工智能")

# 2. 通过NAME定位搜索框(二次验证)
driver.find_element(By.NAME, 'wd').send_keys(" 发展现状")

# 3. 通过CLASS_NAME点击搜索按钮
driver.find_element(By.CLASS_NAME, 's_btn').click()
time.sleep(2)  # 等待结果加载

# 4. 通过LINK_TEXT返回首页
driver.find_element(By.LINK_TEXT, '百度首页').click()

# 5. 通过CSS_SELECTOR打开设置菜单
driver.find_element(By.CSS_SELECTOR, '#s-usersetting-top').click()

# 6. 通过PARTIAL_LINK_TEXT选择搜索设置
driver.find_element(By.PARTIAL_LINK_TEXT, '搜索设置').click()

# 7. 通过XPATH选择每页显示50条结果
driver.find_element(By.XPATH, '//option[@value="50"]').click()

# 8. 通过TAG_NAME保存设置
buttons = driver.find_elements(By.TAG_NAME, 'button')
for btn in buttons:
    if btn.text == "保存设置":
        btn.click()
        break

driver.quit()  # 关闭浏览器

📒避坑指南:实际开发中建议使用 WebDriverWait 确保元素加载完成,避免因网络延迟导致定位失败

# 错误示例:class包含空格时
driver.find_element(By.CLASS_NAME, 'class1 class2')  # 错误!

# 正确写法:只用其中一个class
driver.find_element(By.CLASS_NAME, 'class1')  # 或改用CSS选择器

💡 扩展性:朋友们!可通过修改模板文件添加公司LOGO、联系方式等固定内容。
💡 调试技巧:先测试单个文档生成,再扩展为批量处理
💡在评论区告诉我,下期教你用Python搞定!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术职场教练

您的是我坚持原创免费作品的不懈

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值