
Selenium4.0自动化测试从入门到实践
文章平均质量分 81
以Selenium 4 +Python为基础的UI自动化测试结合自己多年的工作实践经验将工作过程中对Selenium的思考实践倾囊相授:主要包括Selenium基础用法、高级用法、测试环境切换、图表自动化、PO模式、关键字模式、持续集成、测试报告生成等,通过对本专栏的学习能极大的提升UI自动化技术。
知识的宝藏
这个作者很懒,什么都没留下…
展开
-
Selenium4.0自动化测试从入门到实践介绍
本专栏是以Selenium 4.0 +Python 3为基础的UI自动化测试,小编结合自己多年的工作实践经验将工作过程中对Selenium的思考、实践倾囊相授:主要包括Selenium基础用法、高级用法、测试环境切换、图表自动化、PO模式(页面对象)、关键字模式、持续集成、测试报告生成、疑难杂症等,通过对本专栏的学习读者能从0到1极大的提升自己的Web UI自动化测试技术。原创 2024-07-29 00:15:00 · 1140 阅读 · 0 评论 -
HighCharts图表自动化简介
在任何应用程序中捕获并以图形或图表形式显示的分析数据是任何产品或系统的关键部分,因为它提供了对实时数据的洞察。验证此类分析数据非常重要,因为不准确的数据可能会在报告中产生问题,并可能影响应用程序/系统的其他相关领域。原创 2024-09-14 22:09:32 · 1364 阅读 · 0 评论 -
Selenium事件监听
你一定总是渴望从WebDriver中获得更多的日志信息,以便调试你的脚本或记录更多有关测试的信息。EventFiringWebDriver 是一个类,用于包装你的WebDriver以抛出事件,而WebDriverEventListener是一个接口,你需要实现这个接口来捕获WebDriver事件。一旦实现了WebDriverEventListener,你将需要实现一系列的方法,每一个方法对应一个事件。这样,每当WebDriver触发某个事件时,我们的监听器就会执行相应的处理方法。然后,我们创建了一个。原创 2024-09-10 21:51:16 · 561 阅读 · 0 评论 -
Selenium 执行JS脚本之executeScript方法
在早期版本的Selenium中,JavaScript就是被使用的语言之一,现在Selenium WebDriver依然利用JavaScript执行一些操作。这意味着浏览器内部实现了JavaScript,并理解JavaScript命令。JavaScriptExecutor是一个接口,它提供了通过Selenium驱动程序执行JavaScript的机制,包括。的方式来找到页面上的元素;的方法,可以在当前加载的浏览器页面上下文中执行JavaScript代码。可以使用JavaScript来寻找页面上的元素。原创 2024-09-10 06:30:00 · 330 阅读 · 0 评论 -
Selenium集成Sikuli基于图像识别的自动化测试
Sikuli是一款开源工具,用于基于图像识别的自动化测试。它可以识别屏幕上的图像,并模拟用户的交互,如点击按钮、填写表单等。Sikuli非常适合处理那些传统的基于DOM元素的自动化工具难以应对的情况,比如Flash对象、图片按钮等。Selenium是一个用于Web应用程序测试的工具,它直接与浏览器交互,支持多种编程语言,如Java、Python等,并且能够运行在不同的操作系统之上。原创 2024-09-09 00:30:00 · 494 阅读 · 0 评论 -
Selenium处理Web表格
Web表格是在网页上用来表示数据或信息的一种形式,这些数据或信息可以是静态的也可以是动态的。在Selenium WebDriver中,可以通过使用WebElement函数和定位器来访问Web表格及其元素。一个典型的例子是电子商务平台上显示的产品规格表。通过上述方法,我们可以有效地使用XPath来访问Web表格中的元素。如果元素在HTML代码中写得很深,以至于很难确定谓词的数字,可以使用该元素的独特属性代替。在XPath中,属性作为谓词使用时,需要在其前面加上“@”符号。原创 2024-09-09 00:15:00 · 294 阅读 · 0 评论 -
如何使用Selenium捕获控制台日志
通过上述步骤,您可以在Selenium中使用Java捕获控制台日志。这不仅有助于调试Web应用程序,还可以用于自动化测试中验证控制台输出是否按预期工作。请确保根据您的实际环境调整ChromeDriver的路径,并且可能还需要对代码进行进一步的调试和完善才能完全满足您的需求。原创 2024-09-08 00:30:00 · 351 阅读 · 0 评论 -
如何在Selenium中使用Chrome进行网络限速
通过上述步骤,您可以在Selenium中使用Java来设置网络条件并模拟不同的网络环境。这有助于识别潜在问题并改善Web应用程序的性能。请确保根据您的实际环境调整ChromeDriver的路径,并且可能还需要对代码进行进一步的调试和完善才能完全满足您的需求。原创 2024-09-08 00:15:00 · 265 阅读 · 0 评论 -
使用Selenium WebDriver来检测网页上的坏链接
坏链接是指那些不可达的链接或URL,它们可能是由于某些服务器错误而导致无法访问。一个URL通常会有一个有效的状态码2xx。对于无效的请求,HTTP状态码是4xx(客户端错误)或5xx(服务器端错误)。我们通常需要点击链接来确认它是否工作,否则很难确定。原创 2024-09-07 10:11:54 · 850 阅读 · 0 评论 -
如何在 Selenium 中获取网络调用请求?
捕获网络请求对于理解网站的工作方式以及传输的数据至关重要。Selenium 作为一种 Web 自动化工具,可以用于捕获网络请求。本文将讨论如何使用 Selenium 在 Java 中捕获网络请求并从网站检索数据。我们可以使用浏览器开发者工具轻松捕获网络请求或日志。大多数现代 Web 浏览器都内置了开发者工具,允许我们查看和捕获网络请求。我们可以通过右键单击网页并选择“检查”选项来访问开发者工具。原创 2024-09-07 03:00:00 · 677 阅读 · 0 评论 -
如何在Selenium中使用Chrome DevTools进行交互
通过上述步骤,您可以在Selenium中使用Java与Chrome DevTools进行交互,从而执行各种自动化任务,如性能测试、网络分析、模拟地理位置等。这不仅有助于调试Web应用程序,还可以用于自动化测试中验证Web页面的行为。请确保根据您的实际环境调整ChromeDriver的路径,并且可能还需要对代码进行进一步的调试和完善才能完全满足您的需求。原创 2024-09-06 22:47:21 · 806 阅读 · 0 评论 -
如何在Selenium中捕获网络请求响应
通过上述步骤,您可以在Selenium中使用Java捕获网络请求的响应。这不仅有助于调试Web应用程序,还可以用于自动化测试中验证网络请求是否正确发出。请确保根据您的实际环境调整ChromeDriver的路径,并且可能还需要对代码进行进一步的调试和完善才能完全满足您的需求。原创 2024-09-06 22:28:36 · 830 阅读 · 0 评论 -
使用Selenium WebDriver捕获网络请求
通过上述步骤,我们可以在Selenium中使用Python捕获网络请求。这不仅有助于调试Web应用程序,还可以用于自动化测试中验证网络请求是否正确发出。请确保根据您的实际环境调整ChromeDriver的路径,并且可能还需要对代码进行进一步的调试和完善才能完全满足您的需求。原创 2024-09-06 22:21:48 · 687 阅读 · 0 评论 -
Pytest设置日志
如果您需要自定义日志格式,可以使用logging或loguru的配置选项。例如,使用logging在 pytest 中,您可以使用内置的日志功能来记录测试过程中的信息。通过命令行参数和配置文件,您可以控制日志级别和输出位置。如果您需要更高级的日志管理功能,可以考虑使用插件。原创 2024-07-29 00:45:00 · 366 阅读 · 0 评论 -
Pytest软断言
如果您不希望使用外部插件,也可以自己编写一个简单的软断言函数。在这个例子中,我们定义了一个函数,它接受一个条件和一条错误消息。如果条件不满足,则将错误消息添加到一个列表中。在测试结束时,如果列表中有任何失败的断言,我们将使用报告它们。使用插件可以方便地在 pytest 中实现假设检查。这有助于在测试过程中捕获更多的信息,并提供更详细的错误报告。如果您需要控制测试的执行流程和失败时的行为,提供了灵活的选项来满足这些需求。使用插件可以方便地在 pytest 中实现软断言。原创 2024-07-28 00:30:00 · 154 阅读 · 0 评论 -
pytest如何设置失败重试
如果您需要根据特定条件来决定是否重试,可以在测试函数中使用装饰器来指定重试条件。在这个例子中,reruns=2表示最多重试两次,表示每次重试之间等待 1 秒。通过使用插件,您可以轻松地设置测试失败后的重试次数。这有助于在某些情况下提高测试的稳定性,尤其是在网络不稳定或系统负载波动的情况下。如果您需要更高级的定制功能,可以考虑使用装饰器来控制重试行为。原创 2024-07-28 00:15:00 · 224 阅读 · 0 评论 -
Selenium clear无效解决办法
您可以创建一个自定义的方法来处理清除输入框的操作,该方法可以根据具体情况选择合适的方法。# 尝试使用 clear()# 如果 clear() 失败,尝试使用 sendKeys# 如果仍然失败,使用 JavaScript# 示例用法如果clear()方法不起作用,您可以尝试使用sendKeys来模拟删除键,或者使用 JavaScript 直接操作 DOM。确保元素是可见的并且可以编辑。如果问题仍然存在,考虑是否有其他框架或库的限制,并采取相应的解决措施。原创 2024-07-27 19:49:16 · 464 阅读 · 0 评论 -
Pytest设置测试用例执行顺序
您可以创建一个文件,并在其中定义一个使用插件可以方便地控制测试用例的执行顺序。只需安装插件并使用适当的装饰器即可实现您的需求。如果需要更复杂的排序逻辑,可以考虑使用 collection hooks。原创 2024-07-27 19:17:49 · 789 阅读 · 0 评论 -
Selenium 柱状图自动化测试
柱状图是图表中非常基本的图形之一,可以很直观的对多项数据进行对比展示。那么如何对柱状图进行自动化测试呢?本篇小编将结合实际工作经验来分享一下小编在工作中使用Selenium对柱状图进行自动化测试的经验。本篇还是讲述以echarts为图表库构建的基础柱状图图表的自动化测试,选一个echarts官方示例有交互数据的柱状图:Apache ECharts,一款基于JavaScript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。原创 2024-02-24 21:21:01 · 2073 阅读 · 0 评论 -
编写第一个Selenium脚本
这些capabilities用于所有浏览器.在 Selenium 3 中, capabilities是借助"Desired Capabilities"类定义于会话中的. 从 Selenium 4 开始, 您必须使用浏览器选项类. 对于远程驱动程序会话, 浏览器选项实例是必需的, 因为它确定将使用哪个浏览器.这些选项在。Selenium所做的一切, 就是发送给浏览器命令, 用以执行某些操作或为信息发送请求. 您将使用Selenium执行的大部分操作, 都是以下基本命令的组合。选项 描述您想要的会话类型;原创 2023-12-16 10:28:39 · 1165 阅读 · 0 评论 -
打包Python项目
本教程将指导您如何打包一个简单的Python项目。它将 向您展示如何添加必要的文件和结构来创建包,如何 构建包,以及如何将其上传到Python包索引(PyPI)。尖端如果您在运行本教程中的命令时遇到问题,请复制命令 及其输出,然后在存储库上, GitHub.我们会尽力帮助你!原创 2023-12-07 20:15:45 · 546 阅读 · 0 评论 -
Selenium Page object models Java
在web应用程序的UI中,有一些区域可以与测试交互。页面对象仅将这些对象建模为测试代码中的对象。这减少了重复代码的数量,意味着如果UI发生更改,则只需在一个位置应用修复。页面对象是一种在测试自动化中流行的设计模式,用于增强测试维护和减少代码重复。页面对象是一个面向对象的类,用作AUT页面的接口。然后,每当需要与该页面的UI交互时,测试就会使用该页面对象类的方法。好处是,如果页面的UI发生了更改,则测试本身不需要更改,只需要更改页面对象中的代码。随后,所有支持新UI的更改都位于同一位置。原创 2023-12-02 16:16:22 · 346 阅读 · 0 评论 -
Selenium page object模式Python
在web应用程序的UI中,有一些区域可以与测试交互。页面对象仅将这些对象建模为测试代码中的对象。这减少了重复代码的数量,意味着如果UI发生更改,则只需在一个位置应用修复。页面对象是一种在测试自动化中流行的设计模式,用于增强测试维护和减少代码重复。页面对象是一个面向对象的类,用作AUT页面的接口。然后,每当需要与该页面的UI交互时,测试就会使用该页面对象类的方法。好处是,如果页面的UI发生了更改,则测试本身不需要更改,只需要更改页面对象中的代码。随后,所有支持新UI的更改都位于同一位置。原创 2023-12-02 15:44:32 · 963 阅读 · 0 评论 -
Selenium中常用的JS操作总结
在UI自动化测试中,虽然大部分操作selenium能够解决,但是很多时候selenium在某些情况也会显得有心无力,JavaScript作为前端交互的老祖宗在这方面就显得游刃有余了,小编把自己工作多年中常用的js操作分享给大家,希望能助各位童鞋一臂之力。原创 2023-11-24 21:53:18 · 1064 阅读 · 0 评论 -
Selenium 元素不能定位总结
建议编码时现在浏览器调试模式下使用编写的xpath、css selector 在待测页面定位一下,看能不能识别到元素。原创 2023-11-21 21:54:32 · 1353 阅读 · 0 评论 -
Selenium 浏览器坐标转桌面坐标
做图表自动化项目需要做拖拽操作,但是selenium提供的拖拽API无效,因此借用pyautogui实现拖拽,但是pyautogui的拖拽是基于Windows桌面坐标实现的,另外浏览器中的坐标与windows桌面坐标并不是一比一对应的关系,要把浏览器中的坐标转换成桌面坐标需要考虑的因素比较多,如:屏幕的分辨率、缩放比例、浏览器窗口位置、页面是否有滚动、工具栏高度等,本文不考虑窗口内部滚动的情况,假设下图黑框表示window桌面。原创 2023-09-30 12:55:51 · 804 阅读 · 0 评论 -
Selenium 捕获 console logs (Java)
有时候在进行自动化测试的时候控制台输出会帮忙定位问题,所以捕获控制台输出就显得很重要了~以下以selenium 4为例:我们可以使用driver.manage().logs().get(LogType.BROWSER)代码在Selenium中检索日志,该代码将返回一个包含所有控制台日志的LogEntries对象。原创 2023-08-22 21:09:24 · 1338 阅读 · 0 评论 -
使用Selenium与Chrome DevTools交互(Java)
开发人员工具是调试和分析网页的强大工具,许多现代浏览器都为其提供内置支持。它允许开发人员检查元素、调试JavaScript和分析网络活动。这篇文章将讨论Selenium如何与Chrome DevTools一起用于自动化任务和测试网页。原创 2023-07-23 16:16:42 · 3577 阅读 · 2 评论 -
selenium查找svg元素
XPath是一种用于定位XML文档中的web元素的语言,包括构成网页的HTML文档。在Selenium中,XPath是在网页上查找元素(包括SVG(可伸缩矢量图形)元素)最广泛使用的方法之一。SVG元素不同于常规HTML元素,因为它们是使用XML而不是HTML创建的。在Selenium中查找它们需要与查找HTML元素不同的方法。本文将介绍使用XPath在Selenium中定位SVG元素的步骤。我们将使用我们的硒游乐场网站来自动化SVG元素——原创 2023-07-13 21:28:40 · 2507 阅读 · 2 评论 -
Selenium 获取接口响应数据
有时候需要知道UI界面操作的同时接口响应数据是否正常,这时就需要获取接口响应数据。Selenium本身没有获取接口响应的api,但是可以通过第三方库seleniumwire获取接口响应数据。SeleniumWire扩展了Selenium的Python绑定,使您可以访问浏览器发出的底层请求。您以与Selenium相同的方式编写代码,但您获得了额外的API来检查请求和响应,并对其进行动态更改。原创 2023-07-12 20:48:23 · 4634 阅读 · 0 评论 -
使用pytest命令行实现环境切换
在自动化测试过程中经常需要在不同的环境下进行测试验证,所以写自动化测试代码时需要考虑不同环境切换的情况。pytest钩子函数pytest_addoption可以很好帮我们解决这个痛点。parser注册argparse样式选项和ini样式配置值,在测试运行开始时调用一次。由于pytest在启动过程中如何发现插件,因此该函数只能在位于测试根目录的插件或conftest.py文件中实现。参数parser(pytest.parser)–若要添加命令行选项,请调用parser.addoption(…)。原创 2023-07-06 22:24:12 · 968 阅读 · 0 评论 -
Selenium同窗口和标签一起工作
如果只有两个选项卡或窗口被打开,并且你知道从哪个窗口开始, 则你可以遍历 WebDriver, 通过排除法可以看到两个窗口或选项卡,然后切换到你需要的窗口或选项卡。如果除了新窗口之外, 您打开了两个以上的窗口 (或) 标签页,您可以通过遍历 WebDriver 看到两个窗口或选项卡,并切换到非原始窗口。当你完成了一个窗口或标签页的工作时,_并且_它不是浏览器中最后一个打开的窗口或标签页时,你应该关闭它并切换回你之前使用的窗口。假设您遵循了前一节中的代码示例,您将把前一个窗口句柄存储在一个变量中。原创 2023-06-27 23:10:54 · 643 阅读 · 0 评论 -
Selenium 网络元素的信息
这个函数对一个元素的性质和在树中的关系做了许多近似的判断,以返回一个值。此方法用于检查所连接的元素在网页上是启用还是禁用状态。获取与 DOM 属性关联的运行时的值。它返回与该元素的 DOM 特性或属性关联的数据。值, 如果连接的元素显示在当前的浏览器上下文中,则为True,否则返回false。此方法用于检查连接的元素是否正确显示在网页上. 返回一个。此方法用于获取在当前浏览上下文中具有焦点的被引用元素的。获取当前浏览上下文中元素的特定计算样式属性的值。用于获取参照元素的尺寸和坐标。原创 2023-06-27 22:58:27 · 1181 阅读 · 0 评论 -
Selenium Web元素交互
用于操纵表单的高级指令集.原创 2023-06-27 22:50:48 · 825 阅读 · 0 评论 -
Selenium ActionChains
用于向 Web 浏览器提供虚拟化设备输入操作的低级接口.除了高级之外,还提供了对指定输入设备 可以执行的确切操作的精细控制. Selenium为3种输入源提供了接口: 键盘设备的键输入, 鼠标, 笔或触摸设备的输入, 以及滚轮设备的滚轮输入 (在Selenium 4.2中引入). Selenium允许您构建分配给特定输入的独立操作命令, 会将他们链接在一起, 并调用关联的执行方法以一次执行它们.原创 2023-06-27 22:46:57 · 1558 阅读 · 0 评论 -
Pytest集成Allure Report
这可以通过几种方式实现:您可以添加一个提供描述字符串的@allure.description装饰器,也可以使用@allre.description_html提供一些要在测试用例的“描述”部分中呈现的html。有两个装饰器:@allure.feature和@allure.story,用于根据您项目的功能/故事细分来标记您的测试(有关背景信息,请参阅维基百科上的BDD文章)。Allure报告的第一个可能也是最重要的方面是,它允许获得每个测试调用的非常详细的逐步表示。有时,您希望能够灵活地处理要执行的测试。原创 2023-06-22 22:08:33 · 1269 阅读 · 0 评论 -
Selenium 定位策略
在DOM中标识一个或多个特定元素的方法.定位器是在页面上标识元素的一种方法。它是传送给方法的参数。查看寻找的小技巧, 包含在查找方法中,不同时间,不同原因下,单独声明的定位器的使用方法。原创 2023-06-22 21:04:18 · 1416 阅读 · 0 评论 -
Selenium 相对定位
Selenium传统定位基本能解决80%的定位需求,但是还是有一些复杂场景传统定位定不到的场景。在现在框架横行的年代以及快速迭代的开发流程中,开发为了完成任务很多html文档都没有id,class或者其他易于识别的dom元素,虽然使用绝对路径能够定位到,但是你不能保证下次是有效的。原创 2023-06-20 20:44:21 · 1534 阅读 · 0 评论 -
Pytest 分组测试
pytest]markers =sit: 标记测试为sit (deselect with '-m "not sit"')uat: 标记测试为uatprd: 标记测试为prdserialprint('sit环境测试')print('uat环境测试')以上测试选择sit标记的测试,不选中uat标记的测试输出如下:从图片看出运行结果与期望一致~原创 2023-06-09 21:54:49 · 1297 阅读 · 0 评论 -
理解Selenium常见的异常
如何处理Selenium代码中的各种问题.原创 2023-06-05 20:47:59 · 787 阅读 · 0 评论