Selenium自动化测试实战:从入门到实践

Web UI自动化测试之Selenium工具篇 本文介绍了从自动化测试简介到Web应用自动化测试工具Selenium的使用,主要涉及内容有元素定位、元素操作、特殊元素操作、元素等待、鼠标&键盘操作、浏览器操作等。 阅读详情

Selenium是一个强大的自动化测试工具,它允许开发者编写脚本来模拟用户在Web浏览器中的操作。在Python中,Selenium库是自动化Web测试的首选工具之一。本文将介绍如何在Python中使用Selenium进行基础操作、探索高级特性,并分享一些最佳实践。

一、安装与配置

首先,确保你的环境中已安装Python。通过pip安装Selenium库:

pip install selenium

接下来,下载与你的浏览器版本相匹配的WebDriver,并将其路径添加到系统的环境变量中,或在Python脚本中直接指定WebDriver的路径。

二、基础操作

2.1 启动浏览器

from selenium import webdriver  
  
# 指定WebDriver路径(如果已添加到环境变量,可省略)  

#driver_path = 'path/to/chromedriver'  
#driver = webdriver.Chrome(executable_path=driver_path)  
driver = webdriver.Chrome()  
# 打开网页  
driver.get('http://www.baidu.com')

2.2 页面元素定位与操作

Selenium提供了多种元素定位策略,如ID、CSS选择器、XPath等。

from selenium.webdriver.common.by import By  
  
# 定位并操作元素  
search_box = driver.find_element(By.ID, 'search-box')  
search_box.send_keys('Selenium')  
search_button = driver.find_element(By.CSS_SELECTOR, '.search-button')  
search_button.click()

三、高级特性

3.1 显式等待

显式等待用于等待某个条件成立时继续执行,否则在达到最大等待时间时抛出异常。

from selenium.webdriver.support.ui import WebDriverWait  
from selenium.webdriver.support import expected_conditions as EC  
  
try:  
    element = WebDriverWait(driver, 10).until(  
        EC.presence_of_element_located((By.ID, 'myDynamicElement'))  
    )  
finally:  
    driver.quit()

3.2 隐式等待(不推荐)

隐式等待对整个driver的寿命周期内设置等待时间,但通常不推荐使用,因为它会影响性能。

3.3 页面对象模式(POM)

页面对象模式是一种设计模式,它将每个页面的测试逻辑封装在单独的对象中,有助于减少代码重复并提高测试的可维护性。

class LoginPage:  
    def __init__(self, driver):  
        self.driver = driver  
        self.username_field = (By.ID, 'username')  
        self.password_field = (By.ID, 'password')  
        self.login_button = (By.ID, 'login_button')  
  
    def login(self, username, password):  
        self.driver.find_element(*self.username_field).send_keys(username)  
        self.driver.find_element(*self.password_field).send_keys(password)  
        self.driver.find_element(*self.login_button).click()

3.4 JavaScript执行

在某些情况下,可能需要使用JavaScript来处理Selenium无法直接实现的操作。

driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

四、最佳实践

以下为示例(打开百度输入python,清空输入在输入selenium,并且搜索后划到底部)
首先查看源代码获取输入框绑定的id为‘kw’,搜索按钮“百度一下”绑定的id为‘su’。
在这里插入图片描述
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/68d7af8937304909acf4c6411106ec77.png

# 导入webdriver模块用于浏览器控制
from selenium import webdriver
# 导入By类,用于定位页面元素
from selenium.webdriver.common.by import By
# 导入time模块用于暂停执行
import time

# 判断是否作为主程序运行
if __name__ == '__main__':
    # 初始化Edge浏览器驱动(确保已安装并配置Edge WebDriver)
    browser = webdriver.Edge()
    try:
        # 打开百度主页
        browser.get('https://www.baidu.com')
        # 通过ID定位搜索框并赋值给input变量
        input = browser.find_element(By.ID, 'kw')
        # 在搜索框中输入'python'
        input.send_keys('python')
        # 暂停2秒,以便观察
        time.sleep(2)
        # 清空搜索框
        input.clear()
        # 再次在搜索框中输入'Selenium'
        input.send_keys('Selenium')
        # 通过ID定位搜索按钮并赋值给button变量
        button = browser.find_element(By.ID, 'su')
        # 点击搜索按钮
        button.click()
        # 等待数据加载完成
        time.sleep(10)
        # 执行JavaScript脚本滚动页面到底部
        browser.execute_script("window.scrollTo(0, document.body.scrollHeight)")
        # 暂停5秒,以便观察页面滚动后的内容
        time.sleep(5)
    except Exception as e:
        # 捕获并打印执行过程中发生的任何异常
        print(e)
    finally:
        # 显式地关闭浏览器,通常在脚本结束时添加browser.quit()来关闭浏览器
        browser.quit()     

通过遵循上述最佳实践,你可以更有效地使用Selenium来编写高质量的自动化测试脚本,从而提高测试效率和软件质量。

自动化测试——selenium工具(web自动化测试) 移动端自动化测试web端自动化测试。 阅读详情

相关推荐

Selenium详解附实战地址(一)

自动化测试相关概念、webdriver的环境配置、关闭chrom更新、八大定位元素实战,元素操作,浏览器操作,附实战地址和资源 二、元素定位简介 三、元素定位常用方法 1、id定位 2、name定位 3、class name定位 4、Tag_name定位 5、link_text定位 6、partial_link_text定位 7、Xpath定位 8、CSS定位 二、元素操作

xiatian22的博客 2243

WEB自动化测试(selenium工具)

一、什么是web自动化测试? 让程序员代替人为去验证web项目功能的过程

软件测试技术交流分享 5300

Selenium自动化测试入门到精通:核心组件、实战脚本与工程化实践

自动化测试是现代软件工程中提升效率与保障质量的关键实践,其核心原理在于通过脚本模拟用户操作,实现重复性测试任务的自动执行。在Web自动化测试领域,Selenium作为W3C标准化的浏览器自动化工具,提供了跨浏览器、跨平台的操作能力,技术价值在于将测试人员从繁琐的手工操作中解放出来,实现快速回归验证。其典型应用场景包括Web应用的功能测试、兼容性测试以及集成到CI/CD流程中的持续验证。本文聚焦于Selenium的核心组件WebDriver、Selenium Manager与Selenium Grid,通过手

weixin_28839699的博客 319

Web自动化测试——selenium篇(一)

与之相比,显示等待的优点就是针对某个元素进行等待,不需要等到所有元素都渲染好,目标元素出现就可以结束了,进一步提高测试效率,但是写法相较于前两种来说更为复杂。在元素定位失败的原因中有提到过,代码的执行速度比页面渲染的速度快,如果目标元素还没渲染出来,代码就已经执行到了,就会导致找不到目标元素,所以等待的操作是非常有必要的。click 和 submit 都可以操作按钮,不同的是,click 可以点击页面中的任何元素,但可以 click 的地方不一定可以 submit ,所以。

weixin_46103589的博客 1824

Selenium元素定位与核心函数实战:Web自动化测试入门指南

Web自动化测试是软件测试领域的关键技术,其核心原理是通过程序模拟用户对浏览器的操作行为,实现测试流程的自动化执行。这项技术的核心价值在于提升测试效率、确保跨浏览器兼容性,并支持持续集成与交付流程。在实际应用中,自动化测试广泛应用于Web应用的功能验证、回归测试和兼容性测试等场景。其中,元素定位和操作是自动化测试的基础,而Selenium作为成熟的WebDriver协议实现,提供了稳定可靠的解决方案。本文聚焦于Selenium的八种元素定位策略和核心函数使用,通过对比ID、XPath、CSS Selecto

weixin_31822733的博客 366

Web自动化测试Selenium【入门必看】

目录 1、Web自动化测试简介 2、功能测试和自动化测试的区别 3、自动化测试流程 4、自动化测试用例和手工测试用例的区别 5、为什么要做自动化? 6、是否适合做自动化? 7、在什么情况下做自动化? 8、什么样的项目需要做自动化测试? 9、Selenium简介 10、Selenium的优势以及工作原理 11、常见浏览器的启动 12、元素定位 13、常用API 14、常见元素处理 15、下拉框--选择元素 16、元素进阶操作 17、特殊窗口切换 18、3种等待的分类 .

weixin_67553250的博客 4115

UI自动化测试从入门到实践:Selenium环境搭建与元素定位全解析

【代码】UI自动化测试从入门到实践:Selenium环境搭建与元素定位全解析。

2404_87562091的博客 1645

Selenium 自动化测试从零实战

课程简介 本课程注重自动化实践,同时讲解一些基础的自动化测试理念,以及常用的 Java 思维,以便快速理解并掌握自动化测试体系、掌握自动化测试的基础核心内容以及自动化框架的整合实现。以“亚马逊购物流程”为例,着重讲解调用被测元素、测试框架 TestNG 的使用,尽量做到让刚入门自动化的读者也能感受到自动化的魅力。 作者简介 王海宝,高级测试工程师,课课家讲师,Testfan 社区、博客园知名撰稿人...

GitChat 3474

java selenium_Selenium的学习

介绍下学习selenium的经验。之前有网友要求我给布置作业,那么我整理一下就全部列在这里。每一步给出一个小题目。selenium是一个比较古老也比较流行的自动化测试库。他的特点是,版本较多,以至于在网上搜到很多教程都是过时的。一、Selenium的家族成员Selenium1:最老的,基于javscript实现的自动化测试框架。新项目上已经没什么人会选择这个了。又叫Selenium RC。Sele...

weixin_39563132的博客 164

洞见 SELENIUM 自动化测试

洞见SELENIUM自动化测试 写在最前面:目前自动化测试并不属于新鲜的事物,或者说自动化测试的各种方法论已经层出不穷,但是,能够在项目中持之以恒的实践自动化测试的团队,却依旧不是非常多。有的团队知道怎么做,做的还不够好;有的团队还正在探索和摸索怎么做,甚至还有一些多方面的技术上和非技术上的旧系统需要重构…… 本文将会从使用和实践两个视角,尝试对基于Web UI自动化测试做细致的...

立师兄Linty 2345

道闸不自动落杆故障排查:从传感器原理到控制器调试全解析

在工业自动化和物联网系统中,传感器与控制器构成的闭环控制是保障设备可靠运行的核心。其基本原理是通过传感器采集环境状态,控制器依据预设逻辑做出决策并驱动执行器动作。这一技术价值在于实现了无人值守下的安全、高效自动化,广泛应用于智能交通、安防和智能楼宇等领域。以停车场道闸系统为例,其自动落杆功能高度依赖地感线圈与防砸雷达的协同。地感线圈作为触发单元,负责感知车辆接近;而防砸雷达则作为持续监测的安全单元,通过微波探测防砸区域内是否有障碍物,其信号是控制器执行落杆决策的关键依据。当系统出现车辆通过后闸杆不落的典型故

weixin_29190651的博客 311

参与自动化测试必看!这 6 本神书帮你从入门到精通

对于进阶学习者,书中重点介绍了如何使用 Java、Python 等编程语言结合各类测试框架(如 TestNG、PyTest)实现接口自动化测试脚本的编写,以及如何实现接口测试的持续集成(如与 Jenkins 结合),确保接口测试能够融入整个软件开发流程中,实现自动化测试的常态化。此外,书中还介绍了自动化测试的最佳实践方法,如如何制定规范的自动化测试流程、如何进行自动化测试用例的评审与维护、如何度量自动化测试的效果等,帮助读者在实际工作中更好地开展自动化测试工作,提升自动化测试的质量和价值。

2503_92849134的博客 574

Multisim14.3中FPGA接口电路设计:原理图项目应用

深入讲解在multisim14.3环境下构建FPGA接口电路的方法,结合原理图设计与项目实践,展现multisim14.3强大的电路仿真能力,提升数字系统开发效率。

weixin_42578963的博客 1157

Selenium与Edge自动化测试入门:环境搭建、元素定位与实战演练

自动化测试是软件工程中提升测试效率和覆盖面的关键技术,其核心原理是通过脚本模拟用户操作,实现重复性任务的自动执行。在Web自动化领域,Selenium作为经典框架,因其跨浏览器支持和丰富的生态而广泛应用。结合Edge浏览器,可以快速搭建零成本、低维护的自动化环境,尤其适合初学者入门。本文聚焦于Selenium与Edge的实战应用,详细讲解环境配置、八大元素定位方法、显式等待机制等核心技能,并通过模拟登录抓取动态数据的完整案例,展示如何将自动化技术应用于网页交互与数据获取场景。

weixin_28831399的博客 247

使用Matlab实现海洋监视雷达检测仿真

海洋监视雷达是一项重要的海洋探测技术,可以用于海上船只、飞机、潜艇等目标的探测和监视,具有广泛的应用价值。本篇文章将介绍如何使用Matlab进行海洋监视雷达的检测仿真,并提供相应的源代码。本篇文章提供了利用Matlab进行海洋监视雷达检测仿真的基本思路和代码实现。读者可以根据自己的需求进行修改和优化,以适应不同的应用场景。使用Matlab实现海洋监视雷达检测仿真。

2301_78484069的博客 448

2024年Unity 面试题 |五萬字 二佰道| Unity面试题大全,面试题总结【全网最全,收藏一篇足够面试】

正所谓 金三银四 ,又到了找工作的大好时机了,不知道大家有没有意向找一份更好的工作呢~ 之前写了很多Unity的学习和实例文章,但是面试题部分还没有一个系统的整理。 那本篇文章就来整理一下Unity中一些常见的面试题,说不准就会面试的时候就会遇到! 本篇文章会将Unity所有方面的面试资料都融会贯通,绝对是2022年Unity面试领域最实用的文章啦!

努力前行,总会成为自己心中的那道光 17万+

Web自动化测试——selenium的使用

Web自动化测试——selenium的使用

如风暖阳的博客 3690

利用 HTML5 与 SICF 打造 CRM WebClient UI 多附件上传 —— 从原型到生产的全流程揭秘

通过HTML5 标准 + SICF 服务 + BOL/GOS API的三位一体方案,我们无需修改 SAP 标准代码,就能让 CRM WebClient UI 获得现代化的多附件上传体验。浏览器负责多选与进度提示,SICF 负责安全中转,ABAP 负责权限校验与落库。你可以先在质量系统快速原型,再逐步完善权限、异常处理与 UI 细节。按照本文的方法落地,哪怕一次上传几百份文件,也能轻松搞定,真正把时间还给业务。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 335

自动化测试入门教程(Maven + TestNG + Selenium)

说明随着项目后期的业务趋于稳定之后,传统的手工方式进行回归测试消耗太多的人力资源,那就要思考如何利用计算机帮助我们达到自动化测试的目的了;编写此篇文档的主要目的是为了针对项目组的新人员加入,如何让他们能够更快的熟悉什么是自动化测试,怎样来进行实现自动化测试,我这里主要采用标题所提到的框架与技术。 注意:如果你的系统业务还在持续改进还没有稳定下来请不要使用自动化测试,切记!切记!否则所消耗的人力成

KEEP LOOKING DON'T SETTLE 2753

汽车电子RTOS--AUTOSAR OS

AUTOSAR OS(AUTomotive Open System ARchitecture Operating System)是AUTOSAR(汽车开放系统架构)标准中的一个重要组件,它是一个专门为汽车电子控制单元(ECU)设计的实时操作系统(RTOS)。AUTOSAR OS旨在提供一个标准化的软件平台,以促进不同供应商和汽车制造商之间的组件复用和协同开发,提高软件质量和降低成本。

MHD0815的博客 1798

【异常】OpenClaw 飞书端 OpenClaw: access not configured. Pairing code: [] Ask the bot owner to approve with

摘要: OpenClaw飞书机器人交互中出现的access not configured报错,是因用户或组织未配置访问权限触发的拦截提示。报错包含组织单元ID和配对校验码,需管理员审批开通权限。普通用户需提交完整报错信息给管理员处理;管理员可通过执行标准化命令单次审批,或批量配置组织白名单优化权限管理。建议提前梳理权限范围、及时同步组织架构变更,并定期审计权限列表以确保安全合规。

奶爸的编程之路,也就一周冷个三天 371

selenium自动化测试实战

一、Selenium介绍 Selenium 是什么?一句话,自动化测试工具。它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器,如果你在这些浏览器里面安装一个 Selenium 的插件,那么便可以方便地实现Web界面的测试。 Selenium 2,又名 WebDriver,它的主要新功能是集成了 Selenium 1.0 以及 WebDriver(WebDr...

打代码的小女孩 11万+

ROS2 机械臂末端刀具执行曲面路径规划入门教程

Noether工具路径规划系统摘要 Noether是一款用于网格曲面刀具路径规划的软件,支持喷涂、打磨、检测等机器人工艺流程。其核心流程分为三步:1)网格修改(平滑、分割等预处理);2)刀具路径规划(生成有序路径点序列);3)刀具路径修改(姿态调整等后期处理)。系统提供栅格规划和边界规划两种模式,支持自定义扩展。配套GUI工具可配置完整流程,包含网格处理、路径生成和可视化功能。通过示例演示了多组件网格处理、拼图边缘铣削等典型应用场景,并指导用户进行插件开发,实现圆柱体提取、摄像机悬停等定制化功能。系统采用模

机器人控制与仿真应用 916

C++ 方向 Web 自动化测试入门指南:从概念到 Selenium 实战

在软件测试领域,自动化测试是提升效率、保障版本迭代质量的核心手段。尤其对于 C++ 开发的后端服务及配套 Web 界面,Web 自动化测试能有效解决回归测试重复劳动、人工操作易出错等问题。本文将从自动化测试基础概念切入,聚焦 Web 自动化测试的核心原理与 Selenium 实战,帮你搭建一套可落地的 Web 自动化测试流程。

会当凌绝顶,一览众山小 4080

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Selenium从入门到精通:Web自动化测试实战指南

跨浏览器支持:Chrome、Firefox、Edge等多语言支持:Java、Python、C#等开源免费:社区活跃,文档丰富掌握Selenium WebDriver的基本用法熟悉元素定位与操作理解等待机制与弹窗处理掌握持续集成与分布式测试。

KBkongbaiKB的博客 1596

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

深入探索Selenium自动化测试:基础、代码实战与最佳实践

在Web开发和测试领域,自动化测试工具的使用变得越来越重要。Selenium是一款强大的自动化测试工具,可以用于模拟用户在浏览器中的操作。本文将介绍Selenium的基础知识,并通过代码实例演示如何使用Selenium进行自动化操作浏览器。

一键难忘的博客 4351

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

上一篇: 爬虫实战:数据请求与解析(4种不同方式的数据解析)
下一篇: Python图形验证码的识别:一步步详解
Shadow℘Coder
博客等级 码龄4年 467粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Shadow℘Coder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值