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

学习Python中Selenium模块的基本用法(2:下载浏览器驱动)

  WebDriver是Selenium模块最重要的组件之一,其支持通过编程接口控制浏览器行为,发送指令到浏览器驱动,实现点击、输入、导航等真实用户操作。不同的浏览器对应不同的WebDriver,参考文献8中介绍了常用浏览器的WebDriver下载和使用方式。
测试过程中首先尝试下载chrome浏览器的WebDriver,但是搜索到的参考文献5无法访问,参考文献4中的WebDriver版本与chrome最新版本号差距较大,因此无法基于chrome验证Selenium模块功能(写本文时发现参考文献8中提供的下载网页可用,且与chrome最新版本接近,有需要的可以访问参考文献9下载),最终使用火狐浏览器。
基于参考文献6下载并安装最新版本的火狐浏览器,然后在参考文献7中下载最新版本的、与操作系统相匹配的geckodriver,如下图所示,本文下载图中划红线的版本,将其解压并放在本机Python安装目录下的Scripts文件夹内(也可以放置在任意文件夹,然后在全局变量PATH中添加该路径)。

在这里插入图片描述
  打开命令行运行geckodriver --version,检查geckodriver是否能正常运行及版本号,如下图所示:
在这里插入图片描述
  最后简单验证geckodriver 是否可用,下面的测试代码基于Selenium模块使用百度搜索并打开DeepSeek官网,代码运行效果如下图所示:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time# 打开百度网址
driver = webdriver.Firefox()
driver.get("https://www.baidu.com")time.sleep(2)# 查找搜索框并输入DeepSeek官网,然后模拟按回车键
search_box = driver.find_element(By.ID, "kw")  # 百度搜索框的ID为"kw"
search_box.send_keys("DeepSeek官网")
search_box.send_keys(Keys.RETURN)time.sleep(3)# 找到第一个结果并点击跳转
first_result = driver.find_element(By.CSS_SELECTOR, "div.result:first-child h3 a")
first_result.click()

在这里插入图片描述
参考文献:
[1]https://www.selenium.dev/zh-cn/
[2]https://www.selenium.dev/zh-cn/documentation/webdriver/getting_started/
[3]https://blog.csdn.net/kk_lzvvkpj/article/details/148610502
[4]https://registry.npmmirror.com/binary.html?path=chromedriver/
[5]https://chromedriver.chromium.org/
[6]https://www.firefox.com.cn/
[7]https://github.com/mozilla/geckodriver/releases/
[8]https://www.cnblogs.com/sunisnyu/p/18442541
[9]https://googlechromelabs.github.io/chrome-for-testing/#stable

http://www.xdnf.cn/news/16490.html

相关文章:

  • Solidity基础(教程④-ERC-4626收益金库)
  • 机器学习sklearn:不纯度与决策树构建
  • Python Pandas.merge_ordered函数解析与实战教程
  • 网络编程概述与UDP编程
  • Faiss 向量数据库详解
  • Redis反弹Shell
  • 【Java基础面试题】Java特点,八种基本数据类型
  • 《Java 程序设计》第 8 章 - Java 常用核心类详解
  • 用了Flutter包体积增大就弃用Flutter吗?包体积与开发效率,这两者之间如何权衡?
  • 设计模式实战:自定义SpringIOC(亲手实践)
  • 【VUE3】搭建项目准备工作
  • 04动手学深度学习(下)
  • 【SpringMVC】MVC中Controller的配置 、RestFul的使用、页面重定向和转发
  • 图论(BFS)构造邻接表(运用队列实现搜索)
  • 【动态规划 | 路径问题】动态规划方法:解决路径问题的最佳策略
  • Java学习-----JVM的垃圾回收算法
  • mac电脑如何关闭防火墙
  • Datawhale AI夏令营记录
  • 第二十二节 MATLAB转置向量、MATLAB追加向量
  • v4l2_ctrl_handler_setup()函数详解
  • JavaWeb 新手学习路线:从零到全栈开发,系统掌握企业级 Web 开发技能
  • 智能制造--EAP设备自动化程序
  • Ubuntu “apt”安装
  • 搜索引擎高级搜索指令大全(Google、百度等浏览器通用)
  • 枚举策略模式实战:优雅消除支付场景的if-else
  • ANSYS Products 2025 R2 安装配置全流程教程(图文详解)
  • Kafka 顺序消费实现与优化策略
  • 【智慧物联网平台】编译jar环境 Linux 系统编译IOT物联网——仙盟创梦IDE
  • MySQL SQL性能优化与慢查询分析实战指南:新手DBA成长之路
  • 接口测试核心概念与实践指南