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

Python Selenium:Web自动化测试与爬虫开发

Python Selenium:Web自动化测试与爬虫开发

      • Python Selenium:Web自动化测试与爬虫开发
        • 安装Selenium
        • 设置WebDriver
        • 基础示例
        • 页面元素交互
        • 处理JavaScript和Cookies
        • 浏览器控制
        • 屏幕截图
        • Headless Mode
        • 结束会话
        • 错误处理与调试

***本文由AI辅助生成***

Python Selenium:Web自动化测试与爬虫开发

Selenium是一个强大的工具套件,主要用于自动化Web浏览器操作。它支持多种编程语言,包括Python,广泛应用于自动化Web应用测试、网页抓取等领域。Selenium WebDriver 可以驱动无界面的浏览器(Headless Browser)或真实浏览器进行操作。

安装Selenium

首先,你需要安装Selenium。如果你使用的是Python,可以在命令行中输入以下命令进行安装:

pip install selenium
设置WebDriver

为了使用Selenium,你需要对应所选浏览器的Driver。例如,如果你选择Chrome,则需要下载 ChromeDriver,并将其路径添加到系统的 PATH 环境变量中,或者直接在Python脚本中指定路径。

基础示例

下面是一个使用Selenium启动Google Chrome并访问百度的Python示例:

from selenium import webdriverdriver = webdriver.Chrome()  # 或 webdriver.Firefox(), 根据你的浏览器选择
driver.get('http://www.baidu.com')
print(driver.title)
driver.quit()
页面元素交互

假设我们要在一个表单中填写用户名和密码并提交:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ECusername = driver.find_element(By.ID, "username")
password = driver.find_element(By.NAME, "password")username.send_keys("your_username")
password.send_keys("your_password")login_button = driver.find_element(By.XPATH, "//button[@type='submit']")
login_button.click()# 显示等待直到元素可见
element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "some_id"))
)
处理JavaScript和Cookies

Selenium可以执行JavaScript,这对于某些动态加载的内容特别有用:

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")  # 滚动到底部cookies = driver.get_cookies()
for cookie in cookies:print(cookie)
浏览器控制

除了模拟登录和点击按钮外,还可以控制浏览器前进、后退、刷新等:

driver.back()
driver.forward()
driver.refresh()
屏幕截图

保存网页快照:

driver.save_screenshot('screenshot.png')
Headless Mode

在不开启图形界面的情况下运行Selenium:

options = webdriver.ChromeOptions()
options.add_argument('--headless')
driver = webdriver.Chrome(options=options)
结束会话

不要忘记结束webdriver会话:

driver.quit()
错误处理与调试

在编写Selenium脚本时可能会遇到网络超时等问题,适当增加错误处理逻辑:

try:element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "myDynamicElement")))
finally:driver.quit()

Selenium提供了丰富的API和功能,结合Python的强大编程能力,可以实现复杂的Web自动化任务,如自动填写表单、截屏、上传下载文件、模拟人类行为等。无论是用于自动化测试还是数据抓取,Selenium都是一个不可或缺的工具。

相关文章:

Python Selenium:Web自动化测试与爬虫开发

Python Selenium:Web自动化测试与爬虫开发 Python Selenium:Web自动化测试与爬虫开发安装Selenium设置WebDriver基础示例页面元素交互处理JavaScript和Cookies浏览器控制屏幕截图Headless Mode结束会话错误处理与调试 ***本文由AI辅助生成*** Python Se…...

Java-07 深入浅出 MyBatis - 一对多模型 SqlMapConfig 与 Mapper 详细讲解测试

点一下关注吧!!!非常感谢!!持续更新!!! 大数据篇正在更新!https://blog.csdn.net/w776341482/category_12713819.html 目前已经更新到了: MyBatis&#xff…...

用CAXA CAD电子图板导入图框、标题栏并导出pdf的方法

1.导入图框: 点击调入图框->出现读入图框文件 一个一个点击,选择合适的图框 然后点击导入 2.导入标题栏: 调入标题栏->出现读入标题栏文件 一个一个点击,选择合适的标题栏,然后点击导入 3.导出pdf&#x…...

深入了解 Linux htop 命令:功能、用法与示例

文章目录 深入了解 Linux htop 命令:功能、用法与示例什么是 htop?htop 的安装htop的基本功能A区:系统资源使用情况B区:系统概览信息C区:进程列表D区:功能键快捷方式 与 top 的对比常见用法与示例实际场景应…...

JDK1.8新增特性

新特性: Lambda表达式: (语法三要素:参数、箭头、代码) JDK1.8引入的一种新语法Lambda表达式,它简化了匿名内部类的使用和提高代码的可读性。 /**正常写法创建Runable**/ Runnable runnable new Runnable() {Overridepublic voi…...

环境背景文本到语音转换

目录 概述演示效果核心逻辑使用方式 概述 本文所涉及的所有资源的获取方式:https://www.aspiringcode.com/content?id100000000027&uid2f1061526e3a4548ab2e111ad079ea8c 论文标题: 本文提出了 VoiceLDM,这是一种旨在生成准确遵循两种…...

后端数据增删改查基于Springboot+mybatis mysql 时间根据当时时间自动填充,数据库连接查询不一致,mysql数据库连接不好用

目录 后端数据增删改查Springboot 实体(entity)类引进添加UserMapper接口 创建对用的UserController注意数据库查询不一致新增数据更新删除postman测试 后端数据增删改查 基于之前构建系统,实现用户数据的CRUD。 打开navicat16,…...

《Python编程实训快速上手》第九天--调试技巧

一、抛异常 异常类型分为两类,第一类是Python自带的异常类型(见《Python编程快速上手》第一天---前三章打基础),第二类是自定义异常。 面对自定义异常类型,使用raise抛异常,类型值默认为Exception&#x…...

html5复习一

目标 1、html5介绍及开发工具 2、html5标签 3、文本样式 4、图片标签和超链接标签 知识点: 万维网的构成: 1、url:统一资源定位器 2、http/https:超文本传输协议 3、html:超文本标记语言 html的后缀名: .html 和 .htm html基本…...

SSL/TLS,SSL,TLS分别是什么

SSL/TLS,SSL,TLS分别是什么 SSL(Secure Sockets Layer,安全套接层) 定义与发展历程: SSL 是一种早期的网络安全协议,旨在为网络通信提供保密性、数据完整性和身份验证等安全保障。它最初由网景…...

css iframe标签使用

<iframe> 标签用于在网页中嵌入另一个 HTML 页面。它非常灵活&#xff0c;可用于嵌入内容&#xff0c;比如其他网站、视频、地图等。以下是有关 <iframe> 的详细介绍及使用方法&#xff1a; 基本语法 <iframe src"URL" width"宽度" height…...

API的妙用

我们都知道&#xff0c;通过使用API可以快速开发部署应用&#xff0c;不需要从头开始收集处理数据。能够很好地提高效率。 一、加速应用程序开发和部署 通过调用API接口&#xff0c;可以快速获取数据、实现功能或整合其他服务&#xff0c;无需从零开始编写大量的代码&#xf…...

HTML5超酷响应式视频背景动画特效(六种风格,附源码)

文章目录 1.设计来源1.1 大气蓬勃动态背景界面效果1.2 星空闪闪动态背景界面效果1.3 眼神深眸动态背景界面效果1.4 星空银河动态背景界面效果1.5 花开花落动态背景界面效果1.6 海底世界动态背景界面效果 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板&#xff0c;程序开…...

Spire.PDF for .NET【页面设置】演示:打开 PDF 时自动显示书签或缩略图

用户打开 PDF 文档时&#xff0c;他们会看到 PDF 的初始视图。默认情况下&#xff0c;打开 PDF 时不会显示书签面板或缩略图面板。在本文中&#xff0c;我们将演示如何设置文档属性&#xff0c;以便每次启动文件时都会打开书签面板或缩略图面板。 Spire.PDF for .NET 是一款独…...

算法中常用到的数学知识:埃拉托色尼筛法(获取质数)、欧几里得算法(求两个数最大公因数)

不管是在项目中还是面试时&#xff0c;一定的算法能力都是极其重要的。大多数算法只要有一定的基础&#xff0c;给足够的时间是可以写出来的&#xff0c;然而有一类算法&#xff0c;说难也不难&#xff0c;说简单也不简单&#xff0c;这种算法通常涉及到某种数学知识&#xff0…...

实战OpenCV之人脸识别

基础入门 随着计算机视觉技术和深度学习的发展,人脸识别已经成为一项广泛应用的技术,涵盖了从安全监控、身份验证、智能家居到大型公共安全项目等多个领域。 人脸识别技术通常包括以下几个主要步骤。 图像采集:通过摄像头或其他图像采集设备,捕获包含人脸的图像或视频帧。 …...

图像预处理之图像滤波

目录 图像滤波概览 均值滤波&#xff08;Mean Filter&#xff09; 中值滤波&#xff08;Median Filter&#xff09; 高斯滤波&#xff08;Gaussian Filter&#xff09; 双边滤波&#xff08;Bilateral Filter&#xff09; 方框滤波&#xff08;Box Filter&#xff09; S…...

【通俗理解】隐变量的变分分布探索——从公式到应用

【通俗理解】隐变量的变分分布探索——从公式到应用 关键词提炼 #隐变量 #变分分布 #概率模型 #公式推导 #期望最大化 #机器学习 #变分贝叶斯 #隐马尔可夫模型 第一节&#xff1a;隐变量的变分分布的类比与核心概念【尽可能通俗】 隐变量的变分分布就像是一场“捉迷藏”游戏…...

PyTorch 分布式并行计算

0. Abstract 使用 PyTorch 进行多卡训练, 最简单的是 DataParallel, 仅仅添加一两行代码就可以使模型在多张 GPU 上并行地计算. 但它是比较老的方法, 官方推荐使用新的 Distributed Data Parallel, 更加灵活与强大: 1. Distributed Data Parallel (DDP) 从一个简单的非分布…...

[cg] vulkan external_memory

最近在写硬件编码的代码&#xff0c;渲染器渲染出的RT需要给到编码器做硬编&#xff0c;有两种方法能做。 一是通过 map的方式&#xff0c;把显存里的数据读到cpu&#xff0c;拷贝一份cpu data给编码器&#xff0c;但这种方式会有内存拷贝的开销。所以&#xff0c;我们思考是否…...

基于STM32的充电桩控制器设计(有完整资料)

资料查找方式&#xff1a;特纳斯电子&#xff08;电子校园网&#xff09;&#xff1a;搜索下面编号即可编号&#xff1a;T4532205M设计简介&#xff1a;本设计是基于单片机的充电桩控制器设计&#xff0c;主要实现以下功能&#xff1a;1、RFID可以注册卡以及删除卡&#xff0c;…...

(96页PPT)新员工入职专题安全教育(附下载方式)

篇幅所限&#xff0c;本文只提供部分资料内容&#xff0c;完整资料请看下面链接 https://download.csdn.net/download/AI_data_cloud/89624194 资料解读&#xff1a;《新员工入职专题安全教育》 详细资料请看本解读文章的最后内容。 新员工是企业发展的新鲜血液&#xff0c;…...

ai辅助开发:借助快马平台智能生成与交互式解析yolov8网络架构图

最近在做一个计算机视觉相关的项目&#xff0c;需要用到YOLOv8模型。作为一个视觉模型小白&#xff0c;最头疼的就是理解这个复杂的网络结构。好在发现了InsCode(快马)平台&#xff0c;它提供的AI辅助开发功能简直是我的救星。 自然语言输入 以前画网络结构图&#xff0c;要么自…...

千问3.5-2B部署教程(低成本GPU方案):单卡24GB显存跑通开源VL模型实录

千问3.5-2B部署教程&#xff08;低成本GPU方案&#xff09;&#xff1a;单卡24GB显存跑通开源VL模型实录 1. 千问3.5-2B模型介绍 千问3.5-2B是Qwen系列中的小型视觉语言模型(VL)&#xff0c;它能够同时理解图片内容和处理自然语言。这个模型特别适合那些需要在有限硬件资源上…...

从零到精通:Logisim-evolution数字电路设计完全指南

从零到精通&#xff1a;Logisim-evolution数字电路设计完全指南 【免费下载链接】logisim-evolution Digital logic design tool and simulator 项目地址: https://gitcode.com/gh_mirrors/lo/logisim-evolution 想要掌握数字电路设计的精髓&#xff0c;却苦于找不到合适…...

Llama-3.2V-11B-cot效果展示:识别艺术海报中风格与主题逻辑断层

Llama-3.2V-11B-cot效果展示&#xff1a;识别艺术海报中风格与主题逻辑断层 1. 工具介绍 Llama-3.2V-11B-cot是基于Meta Llama-3.2V-11B-cot多模态大模型开发的高性能视觉推理工具。该工具针对双卡4090环境进行了深度优化&#xff0c;特别适合需要分析复杂视觉内容的场景&…...

Pixel Couplet Gen效果展示:基于用户画像(年龄/地域)的像素春联风格个性化推荐

Pixel Couplet Gen效果展示&#xff1a;基于用户画像&#xff08;年龄/地域&#xff09;的像素春联风格个性化推荐 1. 项目概览 Pixel Couplet Gen是一款融合传统春节文化与现代像素艺术风格的AI春联生成器。通过ModelScope大模型的强大生成能力&#xff0c;结合精心设计的8-…...

OpenClaw移动端适配:通过飞书调用Kimi-VL-A3B-Thinking多模态服务

OpenClaw移动端适配&#xff1a;通过飞书调用Kimi-VL-A3B-Thinking多模态服务 1. 为什么需要移动端适配 作为一个长期依赖OpenClaw进行本地自动化任务的用户&#xff0c;我最近遇到了一个痛点&#xff1a;当我在户外或出差时&#xff0c;无法方便地使用OpenClaw的强大功能。虽…...

Wan2.2-I2V-A14B效果展示:支持语义分割引导的多对象独立运动控制

Wan2.2-I2V-A14B效果展示&#xff1a;支持语义分割引导的多对象独立运动控制 1. 惊艳的视频生成能力 Wan2.2-I2V-A14B模型带来了令人惊叹的视频生成效果&#xff0c;特别是其独特的语义分割引导和多对象独立运动控制能力。想象一下&#xff0c;你只需要用文字描述一个场景&am…...

SpringBoot+Vue IT交流和分享平台平台完整项目源码+SQL脚本+接口文档【Java Web毕设】

系统架构设计### 摘要 随着信息技术的快速发展&#xff0c;互联网已成为人们获取和分享知识的重要渠道。尤其是在IT领域&#xff0c;技术人员和爱好者需要一个高效、便捷的交流平台来分享经验、讨论技术问题并获取最新行业动态。传统的论坛和社交媒体平台虽然功能丰富&#xff…...