当前位置: 首页 > article >正文

Python selenium库学习使用实操

文章目录

  • 前言
  • 一、安装 Selenium
  • 二、下载WebDriver
  • 三、基本用法
    • 1、打开网页
    • 2.查找页面元素
    • 3.模拟用户操作
    • selenium 常用方法
  • 总结


前言

今日老板给了一个Excel文件和一个表单录入网站,要求实现Excel的内容自动录入表单。这应该涉及自动化了吧,咱也不懂,开始搜吧,Selenium 是一个用于自动化 Web 浏览器操作的强大工具,广泛应用于 Web 应用程序测试、网页数据抓取和任务自动化等场景。Selenium 为各种编程语言提供了 API,用作测试。 目前的官方 API 文档有 C#、JavaScript、Java、Python、Ruby、Kotlin。
更多详情请移步Selenium官网


一、安装 Selenium

要开始使用 Selenium,首先需要安装 selenium 库,并下载适用于你浏览器的 WebDriver。
使用 pip 安装 Selenium:

pip install selenium

二、下载WebDriver

Selenium 需要一个 WebDriver 来与浏览器进行交互。
不同的浏览器需要不同的 WebDriver,例如 Chrome 浏览器需要 ChromeDriver,你需要根据你使用的浏览器下载相应的 WebDriver,并确保它在你的系统 PATH 中。

  • Chrome: ChromeDriver
  • Firefox: GeckoDriver
  • Edge: EdgeDriver

本文以Edge为例,下载后点击安装如下
在这里插入图片描述

三、基本用法

1、打开网页

from selenium import webdriver


if __name__ == "__main__":
    # 使用 Edge 浏览器
    driver = webdriver.Edge()
    driver.get("https://www.baidu.com")

通过命令python seleniumStudy.py运行,发现打开了Edge浏览器,并且成功打开了百度,但是几秒钟后就关闭了,原因是默认设置下Selenium会在完成所有操作后关闭浏览器。为防止这一情况,可以通过添加EdgeOptions的experimental_option,设置detach为True,使浏览器在脚本执行后保持打开状态。另外,也可以使用Options类来设置浏览器不关闭。
修改代码如下

if __name__ == "__main__":
    # 获取浏览器配置
    options = webdriver.EdgeOptions()
    options.add_experimental_option('detach', True) # 保持浏览器不关闭

    # 使用Edge浏览器
    driver = webdriver.Edge(options)
    # 打开网页
    driver.get("https://www.baidu.com")

重新执行,正常。
在这里插入图片描述

2.查找页面元素

# 通过 ID 查找元素
search_box = driver.find_element("id", "kw")
# 通过类名查找元素
search_button = driver.find_element("class name", "s_ipt")
# 通过标签名查找元素
links = driver.find_elements("tag name", "a")

3.模拟用户操作

Selenium 可以模拟用户在浏览器中的操作,例如点击、输入文本等:

    # 输入搜索内容
    search_box.send_keys("Selenium Python")
    # 提交搜索表单
    search_box.send_keys(Keys.RETURN)

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

selenium 常用方法

方法 说明 示例代码
在这里插入图片描述

总结

以上就是Python selenium库的简单学习使用。至于excel如何操作,我们下一篇接着来学习。


http://www.kler.cn/a/331352.html

相关文章:

  • Linux 网络维护相关命令简介
  • Flutter组件————Container
  • [python] 基于matplotlib实现雷达图的绘制
  • Restaurants WebAPI(三)——Serilog/
  • 【开源免费】基于SpringBoot+Vue.JS房屋租赁管理系统(JAVA毕业设计)
  • docker简单命令
  • (done) 声音信号处理基础知识(11) (Complex Numbers for Audio Signal Processing)
  • WindowsTerminal中oh-my-posh样式的cmd、git-bash、cmder配置参数
  • CSS实现文本超出隐藏并显示省略号
  • 【SpringBoot】基础+JSR303数据校验
  • 原生 JS 操作 DOM 元素
  • 图的最短路径算法Floyed
  • 浅谈PyTorch中的DP和DDP
  • 2024年中国科技核心期刊目录(社会科学卷)
  • tailwindcss快速入门(上篇)
  • Web安全 - 构建全面的业务安全保护防御体系
  • 深度学习数据增强的常用方法
  • 滚雪球学Oracle[4.6讲]:存储过程与函数
  • 短视频矩阵系统源码开发/矩阵系统OEM搭建--源代码开发经验分享
  • NVIDIA G-Assist 项目:您的游戏和应用程序AI助手
  • 树莓派 AI 摄像头(Raspberry Pi AI Camera)教程
  • 计网问答大题(期末复习)
  • [C++][第三方库][etcd]详细讲解
  • vue3项目el-table表格行内编辑加输入框校验
  • RabbitMQ 消息队列:生产者与消费者实现详解
  • Linux文件重定向文件缓冲区