Selenium基础:自动化你的网页交互!

在构建Python爬虫的过程中,你可能会遇到需要与网页进行交互的情况,比如填充表单、点击按钮等。这时,Selenium库就成了你的有力工具。Selenium是一个强大的工具,能够模拟用户在网页上的各种操作。本篇博客将向你介绍Selenium的基础用法,以及如何在你的爬虫中使用Selenium进行自动化操作。

Selenium简介

Selenium是一个用于Web应用程序测试的工具,它直接运行在浏览器中,就像真正的用户在操作一样。它支持多种浏览器,包括Chrome、Firefox、Edge等。

要使用Selenium,你需要安装两样东西:

  1. Selenium Python库

  2. 对应于你使用的浏览器的WebDriver

安装Selenium库

通过pip安装Selenium库相当简单:

shell复制

pip install selenium

下载WebDriver

WebDriver是一个允许开发者编程方式控制浏览器的驱动。比如,对于Chrome,你需要下载ChromeDriver。确保下载的版本与你的浏览器版本匹配。

下载后,将WebDriver放在PATH环境变量所指的目录,或者直接在代码中指定其路径。

Selenium的基本使用

让我们用一个简单的例子来展示如何打开一个网页。

python复制

from selenium import webdriver
# 指定ChromeDriver的路径driver_path = '/path/to/chromedriver'
# 初始化WebDriverdriver = webdriver.Chrome(driver_path)
# 打开网页driver.get('https://www.example.com')
# 打印网页标题print(driver.title)
# 关闭浏览器driver.quit()

在上面的代码中,我们创建了一个Selenium WebDriver实例,并打开了一个网页,然后打印其标题,并在最后关闭浏览器。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:691998057【暗号:csdn999】

与网页元素交互

Selenium可以模拟各种网页操作,下面是一些常见的交互方式:

查找元素

python复制

from selenium.webdriver.common.by import By
# 通过id查找元素element = driver.find_element(By.ID, 'id_of_element')
# 通过name查找元素element = driver.find_element(By.NAME, 'name_of_element')
# 通过xpath查找元素element = driver.find_element(By.XPATH, 'xpath_of_element')

发送文本到输入框

python复制

# 假设我们找到了一个输入框input_box = driver.find_element(By.ID, 'input_box_id')
# 发送文本到输入框input_box.send_keys('Hello, Selenium!')

点击按钮

python复制​​​​​​​

# 假设我们找到了一个按钮button = driver.find_element(By.ID, 'button_id')
# 点击按钮button.click()

等待元素加载

有时候页面不会立即加载所有的元素,这时候我们可以使用Selenium的等待功能。

python复制​​​​​​​

from selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as EC
# 等待直到元素可见element = WebDriverWait(driver, 10).until(    EC.presence_of_element_located((By.ID, 'myDynamicElement')))

这段代码会等待直到ID为'myDynamicElement'的元素在DOM中出现,或者超时(本例中为10秒)。

完整代码案例

下面是一个使用Selenium进行自动化操作的完整代码案例,模拟了搜索操作。

python复制​​​​​​​

from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common.keys import Keys
# 初始化WebDriverdriver = webdriver.Chrome('/path/to/chromedriver')
# 打开Googledriver.get('https://www.google.com')
# 等待搜索框加载完成search_box = WebDriverWait(driver, 10).until(    EC.presence_of_element_located((By.NAME, 'q')))
# 输入搜索内容并回车search_box.send_keys('Selenium Python' + Keys.RETURN)
# 等待搜索结果加载完成results = WebDriverWait(driver, 10).until(    EC.presence_of_element_located((By.ID, 'search')))
# 打印搜索结果print(results.text)
# 关闭浏览器driver.quit()

在这个例子中,我们打开了Google,等待搜索框加载,进行搜索,并打印出搜索结果。

总结

本篇博客介绍了如何使用Selenium库进行Web自动化测试,包括基础设置、元素交互、等待条件和一个实际的搜索案例。通过Selenium,你可以模拟几乎所有的用户交互,这对于复杂的网页操作和动态内容抓取至关重要。掌握Selenium对于构建高级爬虫来说是一个重要的技能。

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/714225.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EdgeX Foundry 设备服务

文章目录 1.设备服务2.设备配置文件3.设备资源4.资源属性(Attributes)5.资源属性(Properties)6.设备命令7.资源操作8.REST 命令端点9.推送事件 EdgeX Foundry # EdgeX Foundryhttps://iothub.org.cn/docs/edgex/ https://iothub.…

好用的AI模型集合

AI-Chat 这个网站提供的AI-Chat 3.5和AI-Chat 4.0聊天机器人,每天都可以免费使用。 不管是学习、工作还是日常生活,都能给我们带来很大的帮助,效率真的可以说是翻倍了。我觉得,如果你想让自己的生活更加高效、更加有序&#xff0…

WEB漏洞 SSRF简单入门实践

一、漏洞原理 SSRF 服务端请求伪造 原理:在某些网站中提供了从其他服务器获取数据的功能,攻击者能通过构造恶意的URL参数,恶意利用后可作为代理攻击远程或本地的服务器。 二、SSRF的利用 1.对目标外网、内网进行端口扫描。 2.攻击内网或本地的…

Selenium 4.0+ 版本的“正确使用”以及“驱动程序的正确安装”

前言 本文是该专栏的第18篇,后面会持续分享python爬虫干货知识,记得关注。 你是否还在使用selenium 3.0+版本呢?如果还是在使用selenium的旧版本,那就好好看完这篇文章,让你立刻使用上最新的selenium版本——selenium 4.0+版本。 我们都知道selenium是一个开源的Web自动…

python+Selenium以IE模式打开edge浏览器

一、修改ie的注册表 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones 下边5个文件夹下的2500的值改成3 计算机\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones 下边5个文件夹下的2…

全量知识系统问题及SmartChat给出的答复 之12 知识图表设计

Q32. 画一个图表 今天,我们开始设计图表,以便能直观表示前面各种概念名相及其位置关系,发现其中的问题和错误。 先画出一个3*3的表格,还有一根对角线(左上到右下),上面有列名,分别…

戏说c第二十六篇: 测试完备性衡量(代码覆盖率)

前言 师弟:“师兄,我又被鄙视了。说我的系统太差,测试不过关。” 我:“怎么说?” 师弟:“每次发布版本给程夏,都被她发现一些bug,太丢人了。师兄,有什么方法来衡量测试的…

css实现背景渐变叠加

线性渐变效果图: .box{width: 100vw;height: 100vh;background:linear-gradient(to bottom,transparent,#fff 30%),linear-gradient(to right,pink,skyblue);}径像渐变效果图: .box{width: 100vw;height: 100vh;background:linear-gradient(to bottom,transparent,#…

【SVN】使用TortoiseGit删除Git分支

使用TortoiseGit删除Git分支 前言 平时我在进行开发的时候,比如需要开发一个新功能,这里以蘑菇博客开发服务网关-gateway功能为例 一般我都会在原来master分支的基础上,然后拉取一个新的分支【gateway】,然后在 gateway分支上进…

MySQL学生成绩管理系统based on C++ and Clion

mysql_free_result()函数的作用是释放结果集的内存,是同步的,也就是要中断一下 该实验使用了MySQL链接数据库的基本使用方法,具体使用了 MYSQL_RES 数据库的mysql_store_result()函数的返回值是一个结果集,该函数的作用是检索比…

langchain学习笔记(七)

RunnablePassthrough: Passing data through | 🦜️🔗 Langchain 1、RunnablePassthrough可以在不改变或添加额外键的情况下传递输入。通常和RunnableParallel结合使用去分配数值给到字典的新键 两种方式调用RunnablePassthrough (1&#…

FL Studio21编曲制作软件中文版2024最新版本功能详细介绍

一、软件概述 FL Studio 21,全称Fruity Loops Studio 21,是一款功能强大的编曲制作软件,被广泛应用于音乐创作、编曲、录音、混音和后期制作等领域。其中文版为中国的音乐制作人和爱好者提供了更加便捷的操作体验。 FL Studio 21 Win-安装包…

探索ECMAScript语法的深度奥秘

随着现代Web应用的崛起,ECMAScript(简称ES)成为了前端开发者的必备利器。ECMAScript定义了JavaScript的语法和基本结构,是JavaScript的标准规范。本文将深入探讨ECMAScript语法的一些精妙之处,为读者揭示其中的深度奥秘…

P10166 [DTCPC 2024] 环

解题思路 满足的序列即为环若图上有环,则代价为0若无环,则在图上已有的边在添加一条回边可形成环对所有的点由小到大排序由于环的大小可以为2初值设为,先不管最小点之间是否有边,反正不会更劣通过拓扑排序找环,在找环…

js:lodash template文件模板语法和应用

文档 https://www.lodashjs.com/docs/lodash.templatehttps://lodash.com/docs/4.17.15#template 语法 <% VALUE %> 用来做不转义插值&#xff1b;<%- VALUE %> 用来做 HTML 转义插值&#xff1b;<% expression %> 用来描述 JavaScript 流程控制。 示例 …

AI技术大揭秘!你不可不知的顶级大模型

在这个数字化飞速发展的时代&#xff0c;AI大模型以其惊人的应用范围和深远的影响力&#xff0c;正逐渐成为各行各业的革命性力量。想象一下&#xff0c;在一个晴朗的午后&#xff0c;一个智能客服系统正轻松地处理着成千上万的客户咨询&#xff0c;不仅回答速度快捷&#xff0…

http状态,cookie、session、token的对比

http是无状态的&#xff0c;也就是说断开会话了服务器就不记得任何事情了&#xff0c;但这样对于用户会很麻烦&#xff0c;因为要不停输入用户名和密码 cookie是放在浏览器里的数据&#xff0c;第一次访问后服务器会set cookie&#xff0c;然后浏览器保存这个cookie&#xff0…

面向制造的设计

面向制造的设计&#xff08;Design for Manufacturing, DFM&#xff09;是一种设计方法论&#xff0c;它强调在产品设计阶段就考虑制造过程中的各种约束和限制&#xff0c;以确保设计的可行性和可制造性。这种方法的目标是在产品设计的早期阶段就优化设计方案&#xff0c;以减少…

win10如何添加指纹登陆

1、首先进入设置,进入下一个设置页面 2、在下一个设置页面内,我们直接使用右上角的搜索框,输入“指纹/finger”进行搜索。回车之后进入设置指纹登陆选项 3、设置指纹登陆的前期是设置好你的密码和pin码(先要设定登录密码和pin码),这里pin和密码都可以直接登陆我们的win10,设…

qt 5.15版本安装

1.qt5.15版本安装 2.安装慢时&#xff0c;切换到清华镜像源&#xff1a;.\qt-unified-windows-x64-online.exe --mirror https://mirrors.tuna.tsinghua.edu.cn/qt/ 3.没有qt 5.15版本在旁边进行筛选&#xff0c;只选archive