【Python从入门到进阶】34、selenium基本概念及安装流程
接上篇《33、使用bs4获取星巴克产品信息》
上一篇我们介绍了如何使用bs4来解析星巴克网站,获取其产品信息。本篇我们来了解selenium技术的基础。
一、什么是selenium?
Selenium是一种用于自动化Web浏览器操作的开源工具。它提供了一组API(应用程序接口),使开发人员能够使用多种编程语言(如Python、Java、C#等)来控制浏览器的行为。
Selenium最初是为了进行Web应用测试而创建的,但它也可以用于执行各种Web自动化任务,如模拟用户操作、填写表单、点击按钮、提取数据等。
Selenium通过与浏览器进行通信,在浏览器中模拟用户行为。它可以打开浏览器,加载URL,查找和操作页面元素,发送键盘输入,执行JavaScript代码等。
Selenium支持多种浏览器,包括Chrome、Firefox、Safari、Edge等,每个浏览器都有对应的驱动程序,用于与Selenium进行交互。
常用的Selenium组件有:
1、Selenium WebDriver:用于编写测试脚本,控制浏览器行为,并获取网页内容。(老版本是Selenium RC)
2、Selenium Grid:用于在不同的机器上并行执行测试,以加快执行速度。
3、Selenium IDE:一个浏览器插件,可用于录制和回放用户在浏览器中的操作,方便快速生成测试脚本。
总之,Selenium是一个功能强大的工具,可用于自动化Web浏览器操作,帮助开发人员和测试人员自动执行各种Web任务和测试。
二、为什么要使用selenium?
使用Selenium有以下几个主要原因:
1、自动化测试:Selenium最初是为了进行Web应用的自动化测试而创建的。通过编写测试脚本,可以模拟用户在浏览器中的操作,自动执行各种测试用例,包括点击按钮、填写表单、验证页面元素等。这可以大大提高测试效率和准确性,并且可以在不同的浏览器和操作系统上运行测试。
2、跨浏览器兼容性:Web应用在不同的浏览器中可能会有不同的呈现和行为。使用Selenium可以轻松地在多个主流浏览器(如Chrome、Firefox、Safari、Edge等)中执行测试,以确保应用在各种浏览器环境下的兼容性。
3、数据抓取和网页解析:Selenium可以作为一个强大的网络爬虫工具,帮助自动化地抓取网页内容并进行解析。这在需要从多个网页中提取数据、监测网页变化或进行网站内容分析时非常有用。
4、任务自动化:除了测试和数据抓取,Selenium还可以用于执行各种Web任务的自动化。例如,自动化提交表单、定期检查网站状态、自动化下载文件等。通过编写脚本来指导浏览器完成这些任务,可以节省时间和人力成本。
三、如何安装selenium?
要安装Selenium,可以按照以下步骤进行操作:
1、选择编程语言:首先,确定你将使用哪种编程语言来编写Selenium脚本。Selenium支持多种编程语言,如Python、Java、C#等。
2、安装语言相关的开发环境:根据你选择的编程语言,安装相应的开发环境。例如,对于Python,你需要安装Python解释器和相关的包管理工具(如pip)。
3、安装Selenium库:使用包管理工具安装Selenium库。在命令行中运行适用于你选择的编程语言的安装命令。例如,对于Python和pip,可以运行以下命令来安装Selenium库:
pip install selenium
4、下载浏览器驱动程序:Selenium需要与特定的浏览器进行交互,因此你需要下载并配置相应的浏览器驱动程序。驱动程序的下载链接可以在Selenium官方文档中找到。根据你使用的浏览器和操作系统,下载并解压合适的驱动程序。
这里是谷歌浏览器Selenium驱动的下载地址:https://npm.taobao.org/mirrors/chromedriver/
需要按照自己电脑谷歌浏览器的版本(谷歌浏览器右上角-->帮助-->关于),下载对应的驱动。如果实在没有,去官网下载(https://googlechromelabs.github.io/chrome-for-testing/,该链接会自动检测你谷歌浏览器版本,然后在下面给你驱动下载地址):
然后进去之后,再下载对应系统版本的webdriver(我这里是Windows):
5、配置驱动程序路径:将下载的驱动程序所在的目录添加到系统的环境变量中,或者在代码中指定驱动程序的路径。这样Selenium才能找到并与浏览器进行通信。
我们将下载下来的压缩文件解压:
将其中的chromedriver放置到自己Python安装文件的Scripts目录下:
尝试运行如下代码,能打开浏览器(闪一下)则表示配置成功:
from selenium import webdriver
driver = webdriver.Chrome()
6、编写和运行Selenium脚本:使用你选择的编程语言编写Selenium脚本,并在开发环境中运行它们。根据需要,你可以使用不同的Selenium组件(如WebDriver)来控制浏览器行为。
四、Python中selenium的使用步骤
使用pip安装Selenium库,并下载完驱动和设置好驱动路径后,就可以开始使用Selenium库编写脚本程序了。以下是一个简单的示例,展示了如何打开网页、查找元素并进行操作(这里是打开百度首页,输入“python”并进行搜索):
# _*_ coding : utf-8 _*_
# @Time : 2023-09-01 16:09
# @Author : 光仔December
# @File : selenium基础测试
# @Project : Python基础from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time# 初始化浏览器驱动程序
driver = webdriver.Chrome()try:# 打开网页driver.get('https://www.baidu.com')# 通过 id 找到input框input = driver.find_element(By.ID, "kw")# 输入pythoninput.send_keys('python')input.send_keys(Keys.ENTER) # 按下回车键# 等待5秒看结果time.sleep(5)
finally:# 关闭浏览器driver.close()
效果:
测试selenium浏览器自动化效果
这只是一个简单的示例,Selenium还提供了许多其他功能和方法,如查找元素的不同策略(ID、XPath、CSS选择器等)、模拟键盘输入、处理弹出框等。你可以查阅Selenium的官方文档或相关教程,以获取更多详细信息和示例代码。
下一篇我们详细讲解一下Selenium的使用和有关元素定位相关的内容。
参考:尚硅谷Python爬虫教程小白零基础速通教学视频
转载请注明出处:https://guangzai.blog.csdn.net/article/details/132627038
相关文章:
【Python从入门到进阶】34、selenium基本概念及安装流程
接上篇《33、使用bs4获取星巴克产品信息》 上一篇我们介绍了如何使用bs4来解析星巴克网站,获取其产品信息。本篇我们来了解selenium技术的基础。 一、什么是selenium? Selenium是一种用于自动化Web浏览器操作的开源工具。它提供了一组API(应…...
如何确保ChatGPT在文本生成中遵循道德和伦理准则?
确保ChatGPT在文本生成中遵循道德和伦理准则是一个复杂而重要的任务。人工智能(AI)系统,特别是语言模型,具有强大的生成能力,但如果不受到道德和伦理准则的约束,可能会导致一系列问题,包括歧视、…...
RISC-V Linux系统rootfs制作
文章目录 1、下载2、配置与编译3、运行 buildroot 是一个构建嵌入式Linux系统的框架。整个 buildroot 是由Makefile(*.mk) 脚本和 Kconfig(Config.in) 配置文件构成的,因此可以像配置 Linux 内核一样执行 make menuconfig 进行配置,编译出一个完整的、可…...
git常用场景记录 | 拉取远程分支A合并到本地分支B
文章目录 git常用场景记录拉取远程分支A合并到本地分支B本地分支B存在未add与commit的代码 git常用场景记录 doing,最后更新9.1 拉取远程分支A合并到本地分支B 需求描述 在团队合作时,我自己的本地分支B功能已经实现并合并到feature,之后发现…...
如何利用Linux进行数据管理和分析?
Linux是一款非常强大的操作系统,它不仅可以帮助你管理数据,还可以让你成为一名数据分析大师。只要你会使用命令行,你就可以用Linux进行数据管理和分析。 现在,让我们来看看如何使用Linux进行数据管理。 使用sort命令对数据进行排…...
vue3封装echarts图表数据无法渲染到页面
问题是后端的数据已经成功返回到前端了,但是Echarts图表一直不能被渲染,卡了一个多小时,最后问gpt才解决(gptyyds!!!) methods: {loadGet() {this.$axios.get(this.$httpUrl /goods…...
MySQL索引,事务和存储引擎
一、索引 1、索引的概念 ●索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于C语言的链表通过指针指向数据记录的内存地址)。 ●使用索引后可以不用扫描全表来定位某行的数据,而是先…...
开发指导—利用CSS动画实现HarmonyOS动效(一)
注:本文内容分享转载自 HarmonyOS Developer 官网文档 一. CSS 语法参考 CSS 是描述 HML 页面结构的样式语言。所有组件均存在系统默认样式,也可在页面 CSS 样式文件中对组件、页面自定义不同的样式。请参考通用样式了解兼容 JS 的类 Web 开发范式支持的…...
电商项目part10 高并发缓存实战
缓存的数据一致性 只要使用到缓存,无论是本地内存做缓存还是使用 redis 做缓存,那么就会存在数据同步的问题。 先读缓存数据,缓存数据有,则立即返回结果;如果没有数据,则从数据库读数据,并且把…...
MongoDB实验——MongoDB shell操作
MongoDB shell操作 实验原理 MongoDB shell是一个可执行文件,是MongoDB自带的一个交互式JavaScript shell,位于MongoDB安装路径下的/bin文件夹中。要启动MongoDB shell,可执行命令mongo。这将在控制台提示符中启动该shell,Mongo…...
数据分析师职业发展道路,工作内容是什么?
很多同学问,参加数据分析就业班后之的就业发展道路是怎样的,工作又能做什么呢? 市面上的常见的工作类型有有运营类、技术类及分析类等,可以根据自己的意愿去做适合自己的工作,但是任何工作其实都是需要一技之长。…...
Vue3 + ts的使用
一. IDE的配置 1. VSCode 插件安装搜索builtin typescript 2. 点击“TypeScript and JavaScript Language Features”右下角的小齿轮,然后选择“Disable (Workspace)” 3. 重新加载工作空间。Takeover 模式将会在你打开一个 Vue 或者 TS 文件时自动启用。 二. 依赖的…...
CF Edu152 C
Problem - C - Codeforces 题意: 思路: 首先,观察样例可知 这种是等效的 推广一下 0000.....111111 ..l..............r...... 这种是等效的 容易想到维护后面第一个1的位置和前面第一个0的位置,然后把所有区间都等效一下&…...
iBooker 技术评论 20230902
一、女子同时供职 16 家公司却从不上班,全国骗薪群体至少有七八百人,为何会出现此类骗薪群体? 社保其实很好绕过。就是这些骗薪者一起创立一个外包公司,然后通过这个公司把自己外包出去。这些人和外包公司签的是劳务合同…...
视频动态壁纸 Dynamic Wallpaper for Mac中文
Dynamic Wallpaper是一款Mac平台上的动态壁纸应用程序,它可以根据时间等因素动态切换壁纸,提供更加生动和多样化的桌面体验。 Dynamic Wallpaper包含了多个动态壁纸,用户可以根据自己的喜好选择和切换。这些动态壁纸可以根据时间等因素进行自…...
Java“牵手”京东商品列表数据,关键词搜索京东商品数据接口,京东API申请指南
京东商城是一个网上购物平台,售卖各类商品,包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取京东商品列表和商品详情页面数据,您可以通过开放平台的接口或者直接访问京东商城的网页来获取商品详情信息。以下是两种常用方法的介绍&…...
springboot实战(三)之多环境部署配置文件生效方式
环境: jdk:1.8 springboot版本:2.7.15 配置: 1.新建yml文件 在resources包中创建application-dev.yml、application-testing.yml两个yml文件 2.配置 在application.yml进行配置生效文件 3.注意事项 新建yml的名称必须以&qu…...
java透传参数至logback,自定义日志文件名。过期日志文件自动删除
LogFilter filter日志拦截,把不需要打印的日志信息拦截在外,只录入有key参数的(filterReply FilterReply.ACCEPT;)。 package com.***.***.filter;import ch.qos.logback.classic.Level; import ch.qos.logback.classic.spi.IL…...
HFSS 3维曲线导入
HFSS 3维曲线导入 简介环境参考代码使用结果 简介 如图一所示,CST中可以通过导入和到出由任意点组成的曲线,但是HFSS中貌似不能导入(如图二所示),如果我们要将matlab的产生的曲线的点的数据导入特变麻烦,特…...
【消息中心】kafka消费失败重试10次的问题
Kafka消费失败重试10次的问题通常可以通过配置Kafka消费者来调整。在Kafka中,可以通过设置max.poll.interval.ms、fetch.min.bytes、fetch.max.bytes、fetch.max.wait.ms等参数来控制消费者的拉取消息的行为。 在Spring-Kafka中,消费失败的重试次数可以…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
安宝特方案丨XRSOP人员作业标准化管理平台:AR智慧点检验收套件
在选煤厂、化工厂、钢铁厂等过程生产型企业,其生产设备的运行效率和非计划停机对工业制造效益有较大影响。 随着企业自动化和智能化建设的推进,需提前预防假检、错检、漏检,推动智慧生产运维系统数据的流动和现场赋能应用。同时,…...
令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
力扣热题100 k个一组反转链表题解
题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...
在 Spring Boot 中使用 JSP
jsp? 好多年没用了。重新整一下 还费了点时间,记录一下。 项目结构: pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...
Spring Boot + MyBatis 集成支付宝支付流程
Spring Boot MyBatis 集成支付宝支付流程 核心流程 商户系统生成订单调用支付宝创建预支付订单用户跳转支付宝完成支付支付宝异步通知支付结果商户处理支付结果更新订单状态支付宝同步跳转回商户页面 代码实现示例(电脑网站支付) 1. 添加依赖 <!…...
02.运算符
目录 什么是运算符 算术运算符 1.基本四则运算符 2.增量运算符 3.自增/自减运算符 关系运算符 逻辑运算符 &&:逻辑与 ||:逻辑或 !:逻辑非 短路求值 位运算符 按位与&: 按位或 | 按位取反~ …...
聚六亚甲基单胍盐酸盐市场深度解析:现状、挑战与机遇
根据 QYResearch 发布的市场报告显示,全球市场规模预计在 2031 年达到 9848 万美元,2025 - 2031 年期间年复合增长率(CAGR)为 3.7%。在竞争格局上,市场集中度较高,2024 年全球前十强厂商占据约 74.0% 的市场…...
