![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
selenium
文章平均质量分 81
测试-八戒
1.专注于软件测试领域知识点分享 2.定期推送软件测试行业系统学习资料 3.剖析软件测试从业者实际工作中痛点 感谢各位的支持
展开
-
从0到1开始,一步步搭建Web自动化测试框架
代码test_baidu_search_v4.py内容yield drdr.quit()driver.find_element_by_id('kw').send_keys('博客园 韩志超')sleep(1)assert '韩志超' in driver.title# --html需要pip install pytest-html上例中我们自定义了一个名为driver的Fixture方法。yield上面对的所有语句属于测试准,这里创建了一个浏览器驱动对象dr。原创 2023-05-16 20:38:18 · 1131 阅读 · 0 评论 -
Selenium自动化测试中如何抓取网络请求响应及WebSocket信息
我们在使用Selenium测试Web或Electronjs/Cef框架应用时,有时候操作一个元素需要判断是否发送了请求以及请求的参数是否正确我们可以通过,开启Chrome的性能日志来然后配合driver.get_log("performance")来查看请求,然后对Network相关的日子进行过滤,原创 2023-05-15 20:21:52 · 1911 阅读 · 0 评论 -
Selenium自动化测试之使用真实用户Chrome环境
Selenium每次打开Chrome浏览器时,每次都是一个初始的全新环境,有时候,我们需要一些当前用户的一些设置和插件等,便可以通过ChromeOptions参数,通过指定用户数据目录--user-data-dir来设置成真实用户目录来实现。复制出个人资料路径,去掉最后的/Default,得到用户数据目录为:/Users/superhin/Library/Application Support/Google/Chrome注意:运行脚本时需要退出你的Chrome浏览器,不然会显示,用户数据目录已经被使用。原创 2023-05-14 19:51:24 · 923 阅读 · 0 评论 -
Selenium自动化测试中的PageObject模式
测试开发视频教程、学习笔记领取传送门!!!原创 2023-05-12 19:14:30 · 375 阅读 · 0 评论 -
详细操作Selenium自动化测试之中的断言
Selenium常用的断言包括。原创 2023-05-11 16:49:56 · 1369 阅读 · 0 评论 -
Selenium自动化测试如何处理隐藏元素?
测试开发视频教程、学习笔记领取传送门!!!原创 2023-05-10 19:10:24 · 632 阅读 · 0 评论 -
Selenium自动化实现录屏的一种方法
由于UI层自动化的不稳定性,经常会遇到执行中断或用例失败的问题,以下是一些常见的措施。用例录像是最直观的一种方式,可以查看到实时的操作情况。很多云平台如Saucelabs等都提供了用例录像的功能。然而很遗憾selenium本身没有这种能力。除了借助三方软件如ffmpeg同步录屏外,另外一种实现方法是另外启动一个线程,不断截图,最后将图片拼接成git。操作方法如下。原创 2023-05-08 16:08:34 · 634 阅读 · 0 评论 -
MacOS使用Selenium操作Safari浏览器
系统: macOS10.15.5注:自动化操作百度时,发现需要点两遍百度一下按钮才能反应过来,原因未知。原创 2023-05-05 14:34:37 · 1202 阅读 · 0 评论 -
Python自动化测试面试题之Selenium篇
Selenium是一套浏览器自动化测试框架,支持B/S模式的应用,C/S模式仅支持部分已浏览器为核心的应用,一般情况下不支持C/S模式。光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。使用pywinauto或其他GUI自动化工具生成exe,配合Selenium执行。使用PageObject。使用其他不变的属性定位。你的框架是如何设计的。原创 2023-05-04 15:05:06 · 236 阅读 · 0 评论 -
Selenium自动化测试、使用ChromeOptions启动参数
Selenium是一个支持多平台+多浏览器+多版本的浏览器自动化测试框。Selenium在启动浏览器时可以通过desired_capbilities参数来指定需要启动的平台、浏览器、版本及浏览器启动参数。ChromeOptions是chromedriver支持的浏览器启动选项。通过add_argument()可以添加启动参数,如初始化窗口尺寸,隐身模式等。原创 2023-05-02 19:35:17 · 2632 阅读 · 0 评论 -
Selenium设置页面超时时间-快速终止页面加载
。原创 2023-04-26 13:54:01 · 1822 阅读 · 0 评论 -
Python+Selenium向iframe富文本框输入内容
在使用Selenium测试一些CMS后台系统时,有时会遇到一些富文本框,如下图所示:整个富文本编辑器是通过iframe嵌入到网页中的,手动尝试输入内容,发现内容是输入到iframe页面的body中的,我们也可以直接在body的源码上点击右键选择Edit HTML,输入相应的html代码,达到向富文本框输入的目的,如下下图:以下是使用Selenium的操作方法。原创 2023-04-25 13:47:24 · 860 阅读 · 0 评论 -
python+Selenium自动化操作Chrome模拟手机浏览器
mobileEmulation除了可以通过deviceName指定设备之外,还可以通过deviceMetrics指定设备指标,一般设备指标包含width: 设备宽度height: 设备高度piexelRatio: 设备像素密度userAgent:设备浏览器标识当然如果只需要测试不同分辨率的话也可以只设置width和height值。原创 2023-04-24 16:16:20 · 2324 阅读 · 0 评论 -
Selenium调用使用360浏览器,QQ浏览器,遨游浏览器,猎豹浏览器,Chromium
国产的360安全浏览器,360急速浏览器,QQ浏览器,遨游浏览器甚至新版还未上市的Edge浏览器都是基于Chrome浏览器的开源版本Chronium开发来的。所以360浏览器可以理解为一个定制的Chrome浏览器,最新360安全浏览器是基于Chromium 63版本的,落后正式的Chrome版本。下载解压后的chromedriver.exe可以放在脚本同级目录下或某个配置了环境变量的路径下,比如Python的Scripts下。原创 2023-04-23 15:19:07 · 1075 阅读 · 2 评论 -
Selenium自动化处理授权框,登录框,握手框
Alert弹框Confirm弹框Prompt弹框DOM弹框,或者叫div弹框,这种弹框本身就在html代码中,只是原来隐藏了,触发时会以对话框形式显示出来,如下图:处理方法为,按正常操作,触发显示(建议sleep(.5)),然后直接定位操作上面的元素即可。也可使用js跳过流程,直接使对话框显示,然后定位操作。弹出小窗口,这种小窗口实际上是个网页窗口,无须处理(driver还在原页面),或使用switch_to.window()切换到新窗口,使用driver.close()关闭即可。原创 2023-04-21 16:17:18 · 439 阅读 · 1 评论 -
Selenium自动化实现高亮显示定位到的元素
在调试Selenium脚本中,有时因为操作太快或操作不明显而不清楚是否定位到了正确的元素。我们可用通过执行js为定位到的元素添加样式,来高亮显示定位到的元素。在Selenim Webdriver中,可以通过driver.exectue_scirpt() 执行JavaScript代码,执行的JavaScript代码是支持传入参数的,甚至可以传入定位到的元素,如:,在JavaScript脚本字符串中使用arguments[n]来表示匹配第几个参数。以上代码中,原创 2023-04-20 14:43:08 · 1103 阅读 · 0 评论 -
Selenium自动化全屏截图,使用PIL拼接滚动截图
Selenium默认的截图save_screenshot只支持对当前窗口内容进行截图,当如果你想要截取整个网页,那么,可以明确的告诉你。Selenium做不到。你可以手工使用开发者工具Ctrl+Shift+P调出命令行菜单,执行Capture full screenshot命令进行截图,如下图图:也可以通过Selenium Webdriver的 execute_cdp_cmd()来调用一下Chrome DevTools Protocal提供的方法。但是,很遗憾,没有全屏截图的方法。原创 2023-04-19 19:48:41 · 892 阅读 · 0 评论 -
Selenium自动化测试框架中使用Cookies绕过登录
在使用selenium测试后台时常常每个流程都需要走登录流程,这样自然比较浪费时间。如果遇到登录需要输入验证码等情况,就可能出师未捷身先死。在Web应用中,登录状态通常是通过Cookie中对应的session id验证的。也是就是说,我们只要携带上登录后的Cookies,浏览器就会自动识别我们为登录状态。由于Selenium每次启动的浏览器是一个隔离的环境,不能直接使用本地已经保存的Cookies值,我们需要通过driver的方法手动添加Cookies,来绕过登录。原创 2023-04-18 13:55:48 · 1465 阅读 · 0 评论 -
Python+Selenium自动化测试基础
是把大量需要人工回归的用例由计算机代替执行的一种测试方式。即:使用脚本控制计算机打开网页,点击链接,输入文字,点击按钮等模拟人工执行一系列操作,抓取并判断结果是否符合预期的过程。原创 2023-04-17 15:18:42 · 389 阅读 · 0 评论 -
Python PageFactory-使用配置文件动态生成页面PageObject
对于一个成型的UI项目来说, 在编写用例前, 动辄要先编写数十上百个这种PageObject类. 鉴于每个PageObject类的格式相似, 可以采用的方式来动态生成每一个页面对象本是Selenium Java SDK中的一种基于PageObject的设计模式, 使用语法糖来标记页面元素, 并支持使用来缓存页面元素(这样元素只需要查找一次)鉴于 Python的动态特性, 这里的Page Factory的实现方式与Selenium Java SDK中的完全不同。原创 2023-04-16 16:18:02 · 389 阅读 · 0 评论 -
Selenium定位class包含空格的元素-复合class节点
在HTML中, 节点有三种常见属性, 分别是id, name和class, 其中class是一个特殊的属性, 支持多个类名, 以空格隔开, 如下图所示:你是否注意到, 为什么selenium中的find_element_by_class_name, 是by_class_name而不是, by_class呢?原创 2023-04-14 16:38:10 · 1039 阅读 · 0 评论 -
Selenium常见异常分析及解决方案
现象: pycharm中输入selenium标红。原创 2023-04-13 14:40:26 · 1597 阅读 · 0 评论 -
经典自学笔记Selenium自动化测试第二天(上)
一个框架就是一个独立的网页frameset: 框架组,用来布局框架frame: 具体的一个框架,一般放在frameset中iframe: 内联框架, 可以嵌入到其他网页的body中。原创 2023-04-11 15:55:59 · 305 阅读 · 0 评论 -
超详细教程Selenium自动化测试第一天(下)
需要通过一组元素或分层定位的也可以直接使用XPath直接定位到从浏览器复制出的XPath有可能不靠谱,所以我们要学会XPath的语法。原创 2023-04-10 15:11:08 · 322 阅读 · 0 评论 -
Selenium自动化测试第一天(上)
Selenium是一款浏览器自动化框架,Webdriver是其核心,同过Webdriver将自动化脚本转化为浏览器操作指令。原创 2023-04-09 14:44:49 · 271 阅读 · 0 评论 -
Appium基础 — C/S架构和B/S架构说明
C/S架构即(客户机/服务器)结构,是大家熟知的软件系统体系结构。通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。早期的软件系统多以此作为首选设计标准。B/S架构即(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S架构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓三层架构结构。B/S架构主要是利用了不断成熟的WWW浏览器技术,结合浏览原创 2022-12-07 20:18:52 · 383 阅读 · 0 评论 -
Selenium基础 — TMLTestRunner测试报告
HTMLTestRunner是一个基于unittest单元测试HTML报告的第三库。原创 2022-11-25 19:52:40 · 1044 阅读 · 0 评论 -
Selenium基础 — POM设计模式(一)
POM是页面对象模型的简称。POM是为Web UI元素创建的设计模式。在这个模型下,对于应用程序中的每个网页,应该有相应的页面类。此Page类将会找到该Web页面的,并且还包含对这些执行操作的页面方法。POM设计模式旨在为每个待测试的页面创建一个页面对象,将那些繁琐的定位操作封装到这个页面对象中,只对外提供必要的操作接口,是一种封装思想。白话总结:我们所做的自动化测试,就是模拟人在浏览器上的操作。原创 2022-11-17 21:23:01 · 4187 阅读 · 1 评论 -
Selenium基础 — Selenium中的expected_conditions模块(二)
这个大纲涵盖了目前市面上企业百分之99的技术,这个大纲很详细的写了你该学习什么内容,企业会用到什么内容。总共十个专题足够你学习。原创 2022-11-14 19:58:56 · 1308 阅读 · 23 评论 -
Selenium基础 — Selenium中的expected_conditions模块(一)
这个大纲涵盖了目前市面上企业百分之99的技术,这个大纲很详细的写了你该学习什么内容,企业会用到什么内容。总共十个专题足够你学习。原创 2022-11-11 15:54:24 · 3952 阅读 · 0 评论 -
Selenium基础 — Selenium元素等待
WebDriver定位页面元素时如果未找到,会在指定时间内一直等待的过程。为了保证脚本运行的稳定性,需要脚本中添加等待时间。这个大纲涵盖了目前市面上企业百分之99的技术,这个大纲很详细的写了你该学习什么内容,企业会用到什么内容。总共十个专题足够你学习。原创 2022-11-09 16:31:25 · 398 阅读 · 0 评论 -
Selenium基础 — 拓展:使用浏览器加载项配置实现用户免登陆
在很多情况下,我们在登录网站的时候,浏览器都会弹出一个是否保存登录账号的信息。如果我们选择保存,那么我们在下次登录时就不用再次输入账号,直接免登录了。在我们实际的测试过程中,测试注册登录只是其中的一部分流程,然而我们用selenium打开网站的时候,每次都需要重新登录,就非常麻烦。那么在selenium中能不能实现免登陆操作?当然是可以的,只需要对要打开的浏览器做加载项配置就可以了。说明一下为什么selenium每次代开网站都需要重新登录。原创 2022-11-16 22:07:29 · 2603 阅读 · 2 评论 -
Selenium基础 — Selenium对cookie的操作
HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接,这就意味着服务器无法从连接上跟踪会话。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。举个例子:用户A购买了一件商品放入购物车内,当再次购买商品时,服务器已经无法判断该购买行为是属于用户A的会话,还是用户B的会话了。要跟踪该会话,必须引入一种机制。原创 2022-11-02 14:02:04 · 5363 阅读 · 1 评论 -
Selenium基础 — 文件上传&文件下载
这个大纲涵盖了目前市面上企业百分之99的技术,这个大纲很详细的写了你该学习什么内容,企业会用到什么内容。世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。添加附件,就是上传文件。绝对路径和相对路径都可以,关键是上传的文件存在。这里我准备了对应上面的每个知识点的学习资料、可以自学神器,已经项目练手。文件上传是web页面上很常见的一个功能,用脚本去实现文件上传很简单。实现下载文件功能,只需要配置一下浏览器的参数即可实现。2.是否提示安全警告。原创 2022-10-31 20:15:05 · 4725 阅读 · 1 评论 -
Selenium基础 — 浏览器弹窗操作
由于alert弹窗不美观,现在大多数网站都会使用自定义弹窗,使用Selenium自带的方法就驾驭不了了,此时就要搬出JS方法来进行处理。需求:需求:去掉淘宝首页的自定义弹窗淘宝首页的自定义弹窗如下:提示:网页中弹出的对话框,也属于页面自定义弹窗,都可以用下面方式处理。实现方式:大家能看到,上图中的这种弹窗就是自定义弹窗的表现形式,处理这种弹窗可以利用HTML、DOM、Style对象中的一个display属性来处理,可以设置元素如何被显示。。原创 2022-10-28 17:21:48 · 5223 阅读 · 0 评论 -
Selenium基础 — Selenium操作浏览器窗口滚动条
这个大纲涵盖了目前市面上企业百分之99的技术,这个大纲很详细的写了你该学习什么内容,企业会用到什么内容。世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。这里我准备了对应上面的每个知识点的学习资料、可以自学神器,已经项目练手。需求:访问淘宝首页,在淘宝首页实现Selenium对滚动条的操作。注:1000不代表一定到最底层,要根据浏览器页面的实际大小。聚焦元素:就是把滚动条滚动到你想要查找的元素的位置。脚本的方法,所以我们可以通过。原创 2022-10-26 16:46:43 · 4148 阅读 · 0 评论 -
Selenium基础 — iframe表单操作
实际上就是HTML页面中使用标签,是在当前页面中引用了其他页面的链接,真正的页面数据并没有出现在当前页面源码中,但是在浏览器中我们时看到的。简单理解可以使页面中开了一个窗口显示另一个页面。我们在Web应用中,经常会遇到这样的iframe表单嵌套页面,Frame标签有frameset、frame、iframe三种,frameset跟其他普通标签没有区别,不会影响到正常的定位。而frame和iframe需要切换进去才能定位到其中的元素,这就相当于frame和iframe是当前页面中嵌套的其他页面。原创 2022-10-23 16:24:09 · 2448 阅读 · 0 评论 -
Selenium基础 — 多窗口操作
在页面操作过程中有时候点击某个链接会弹出新的窗口,这时就需要切换到新打开的窗口上进行操作。这个大纲涵盖了目前市面上企业百分之99的技术,这个大纲很详细的写了你该学习什么内容,企业会用到什么内容。世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。最后我这里给你们分享一下我所积累和真理的文档和学习资料有需要是领取就可以了。这里我准备了对应上面的每个知识点的学习资料、可以自学神器,已经项目练手。提示:句柄就可以理解成浏览器窗口的id值。原创 2022-10-20 19:25:19 · 4292 阅读 · 0 评论 -
Selenium基础 — 单选按钮和多选按钮的操作
有时候选项框,本身就是选中状态,如果我再点击一下,它就取消选择了,这可不是我期望的结果,那么可不可以当它是没选中的时候,我去点击下,当它已经是选中状态,我就不点击。返回结果为bool类型,没点击时候返回False,点击后返回True,以后我们在操作单选按钮和多选按钮的时候,先判断按钮是否是选中状态,再根据业务需求进行操作。世界的模样取决于你凝视它的目光,自己的价值取决于你的追求和心态,一切美好的愿望,不在等待中拥有,而是在奋斗中争取。这里我准备了对应上面的每个知识点的学习资料、可以自学神器,已经项目练手。原创 2022-10-18 19:25:11 · 4918 阅读 · 2 评论 -
Selenium基础 — Selenium操作下拉菜单
页面中的标签,就代表该元素是一个下拉菜单。原创 2022-10-16 16:56:08 · 4644 阅读 · 0 评论