
selenium
北极之熊熊
多年功能测试、自动化测试经验,热衷于自动化工具和框架的学习研究!
展开
-
ddddocr运行 ImportError: DLL load failed while importing onnxruntime_pybind11_state: 找不到指定的模块。
ImportError: DLL load failed while importing onnxruntime_pybind11_state: 找不到指定的模块。安装:pip uninstall onnxruntime==1.11.0。1、onnxruntime安装的版本过高与ddddocr不匹配。ddddocr安装时会自动安装依赖库onnxruntime;卸载:pip uninstall onnxruntime。2、VC++ 2019没安装或需要重新安装。下载VC++2019安装后解决;原创 2024-04-03 14:08:21 · 3969 阅读 · 0 评论 -
UI自动化Selenium BeautifulReport报告中展示用例描述
BeautifulReport安装并运行后,发现用例描述为空NULL;怎么定义每个Testcase的用例描述并展示在报告中呢?当然也可以通过ddt 方式 在Excel中定义好用例描述后,运行时传入beautifulReport中;这种方式后面再做介绍;只需要在每个测试方法第一行加上'''注释内容''' 即可;原创 2024-01-19 11:25:47 · 704 阅读 · 0 评论 -
UI自动化Selenium 无头模式运行
2、创建参数,并使用无厘头模式创建driver对象。1、导入浏览器参数设置。原创 2024-01-19 11:00:48 · 1021 阅读 · 0 评论 -
UI自动化Selenium BeautifulReport报告嵌入截图
2、因为上面没有图片时,不返回data对象,所以下面需要判断如果有返回图片地址就print到报告中,没有就不print,这样就不会报错了;这里原作者有个设计不太好的点,add_test_img方法传入的图片名称,如果在业务脚本中没有执行截图,就会报错;其实真实的使用场景应该是,不需要传入图片名称的,应该自动生成图片名称并迁入报告中【此方案后续会研究】后续会研究不需要传入图片名称,遇到报错,就自动截图并print到报告中;2、业务脚本中有if判断,有些地方截图根据业务类型不会执行,有的会执行;原创 2024-01-18 18:18:43 · 915 阅读 · 0 评论 -
UI自动化Selenium BeautifulReport报告样式错乱解决
首先找到依赖的资源地址,通过分析发现BeautifulReport报告生成都是根据一个模板文件,依赖的资源地址配置在模板文件中;有一天开开心心上班,打开我的自动化测试报告,整个人都不好了,出现了让我意想不到的事情——样式错乱、数据出不来;最后打开报告F12查看,发现是报告依赖的js和css文件网络访问不了了;依赖的资源404,找不到了;不足:如果报告发给别人开,别人本地没有资源文件,报告打开还是样式错乱;不足:依赖网络,如果不稳定或者别人环境不能联网,也会出现样式错乱;优势:本地稳定,不再依赖于网络加载。原创 2024-01-18 11:11:15 · 767 阅读 · 0 评论 -
UI自动化Selenium 页面窗口window定位切换
Selenium自动化,在操作元素时,一定是基于某个窗口这个前提;我们时常在操作时会出现打开新窗口的情况;如点击新增按钮,打开了新增单据的新页面窗口,接下来要录入单据信息时,必须告诉框架切换到新窗口后,才能操作窗口内的元素;甚至还需要在几个窗口之间来回切换,要做到这点,我们就需要提前获得各个窗口的句柄,从而判断当前在哪个窗口,接下来要去哪个窗口;原创 2024-01-04 10:28:27 · 901 阅读 · 0 评论 -
UI自动化Selenium iframe切换多层嵌套
先进入IframeBig,再进入Iframe2,操作A,退出Iframe2,进入Iframe3,操作元素B,退出Iframe2,操作元素C。标签,作用是文档中的文档,或者浮动的框架(FRAME)。Selenium自动化对iframe的操作无非就是:进入iframe和退出iframe;要操作每一个元素,必须先进iframe;综上所述,iframe多层嵌套时,一定要注意当前位于什么位置,否则就会迷失;简单来说,就像房子内的一个个房间一样;先进入IframeBig,再进入Iframe2,然后操作元素A。原创 2024-01-04 10:05:40 · 1544 阅读 · 0 评论 -
UI自动化Selenium 显式和隐式等待Wait
都是等待设定的固定时间;不同是,硬等待是只对后一行脚本起作用,隐式等待是全局设置,所有操作都会等待设置的时间后,才操作;举例:如果页面上有 n 个元素的 class 都是’wp’,那么只要有 1 个元素存在,这个方法就返回 True。究其根本原因,就是咱们的应用在运行过程中,因为服务器性能、网络延迟等等原因,导致页面响应或者加载变慢,自动化脚本在操作元素时,元素没有加载完成导致的;因为本身元素可能1s加载完成了,但是设置后,每次都固定等待10s,白白浪费9s时间;智能判断,元素出来了就操作,不出来就等;原创 2024-01-02 18:00:19 · 1912 阅读 · 0 评论 -
UI自动化Selenium ActionChains鼠标动作-点击、拖动、按压、移动(动作链)
move_to_element_with_offset(to_element, xoffset, yoffset) ——移动到距某个元素(左上角坐标)多少距离的位置。drag_and_drop_by_offset(source, xoffset, yoffset) ——拖拽到某个坐标然后松开。send_keys_to_element(element, *keys_to_send) ——发送某个键到指定元素。click_and_hold(on_element=None) ——点击鼠标左键,不松开。原创 2024-01-02 15:16:50 · 1684 阅读 · 0 评论 -
UI自动化Selenium 安装问题定位urllib3 v2.0 only supports OpenSSL 1.1.1+, currently “ ImportError: urllib3 v2.0
出现"urllib3 v2.0 only supports OpenSSL 1.1.1+, currently " ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'OpenSSL 1.1.0h 27 Mar 2018'. 这个错误提示表明,你的代码中使用的urllib3版本与系统中的OpenSSL版本不兼容。原创 2024-01-02 10:33:10 · 995 阅读 · 0 评论 -
UI自动化Selenium 元素定位之Xpath
所以我们做ui自动化,必须搞懂xpath,采用相对路径方式;3、通过元素其他属性定位,如class、type、text文本。xpath 博大精深,有各种巧妙的实现方式,关键是要找到dom结构的规律和逻辑,通过更加合理的方式去找到复合自己需要的元素;xpath是通过给定的xpath路径,扫描整个页面dom结构,从而匹配到复合条件的元素,并进行操作;3、公司的data-level=0,也有区域公司的data-level=0,末级公司=1;三步实现,先找到li的父级,再找到旗下所有li,最后取最后一个li即可。原创 2023-12-21 15:59:13 · 1199 阅读 · 0 评论 -
python+request 接口自动化 jwt Token封装实现
Token可以理解为一种特殊的加密密码或者暗号;只有暗号匹配才能通过,否则就是“敌人”;我们在登录XX站点,XX系统都需要输入自己的用户名和密码;但是在接口调用过程中,为了账号加密安全性,不能明文将账号密码放入到请求体或请求头中;所以需要一种加密方式—暗号,这种暗号格式可以自己定义,那么只有“自己人”知道;从而达到加密安全调用和请求对方接口;1、正常输入账号密码的请求过程:1)登录页面登录后,服务端会生成token返回给客户端并缓存;2)后续操作业务页面,会默认带上缓存的token;原创 2023-12-21 14:40:22 · 2172 阅读 · 0 评论 -
UI自动化Selenium 测试报告BeautifulReport使用及修改
原生报告,因为我使用ddt+unittest数据驱动模式,所以Excel中所有参数都会被拼接出来,导致测试方法里面有太多不需要展示的内容;网上有各种推荐修改方法,大部分是修改BeautifulReport.py文件的,但是我修改后发现最终值显示在用例描述中了,不对;因为在excel中租户号是第二列,ddt中转换为list后,是第二个元素,所以取v数组第二个元素。修改完成后,报告样式如下,测试方法下,我只想展示测试方法及测试了哪个租户字段;想法是,只保留自己需要展示的字段;三、修改后的样式及修改办法。原创 2023-12-14 10:55:14 · 747 阅读 · 0 评论 -
python+request 接口自动化
一、安装request类库。原创 2023-12-14 10:50:32 · 231 阅读 · 0 评论 -
UI自动化Selenium 鼠标滑动悬停到指定元素
当调用ActionChains的方法时,不会立即执行,只是将要做的动作安装顺序存放在队列中;当调用perform()方法时,队列中的方法会依次执行;他是按照设计好的动作顺序链式执行;ActionChains执行原理。原创 2023-12-06 10:25:21 · 781 阅读 · 0 评论 -
UI自动化Selenium 数据驱动读取Excel
下面为具体调用实现:结合unittest框架和ddt数据驱动框架使用。selenium 自动化,希望通过Excel进行数据驱动;即代码自动读取并循环所有数据;如下为Excel读取封装的函数。tuple读取后,存储为键值对。原创 2023-12-06 10:23:41 · 571 阅读 · 0 评论 -
UI自动化Selenium OCR库:ddddocr识别验证码
一、安装ddddocr。UI自动化Selenium OCR库:ddddocr识别验证码原创 2023-12-01 08:49:46 · 1243 阅读 · 2 评论 -
UI自动化Selenium find_elements和find_element的区别
1.返回值类型不同:find_element返回一个WebElement对象,而find_elements返回一个包含多个WebElement对象的列表。# 如果获取的element是list,那么需要用find_elements方法;# 2.查找方式不同:find_element只返回第一个匹配的元素,而find_elements返回所有匹配的元素。# 4.用法不同:find_element用于查找单个元素,而find_elements用于查找多个元素。原创 2023-12-01 08:38:14 · 1323 阅读 · 0 评论 -
selenium+python webUI自动化框架搭建
selenium是一个开源的自动化框架,他可以让你在各种语言中实现webui自动化测试,比如:C、java、ruby、python、C#等等;并且支持跨平台,windows linux mac;同时支持多浏览器,ie、ff、safari、opera、chrome,只需要加载对应的驱动即可;还能支持分布式测试执行,将TestCase分发到不同的执行机同时执行,提高执行效率;原创 2023-11-01 16:06:26 · 217 阅读 · 0 评论 -
selenium 解决chrome浏览器自动升级问题
C:\Users\当前用户\AppData\Local\Google\Chrome\Application 此目录下如果有新版本,会创建一个新的版本号目录;可以将下载的新版本删除掉,否则即使上面已禁用,只要此处存在新版本会自动安装;C:\Users\当前用户\AppData\Local\Google 此目录下的update目录的权限全部禁止。经过以上三步,能完美解决chrome偷偷升级的问题;往往chrome浏览器在后面偷偷的进行自动升级,导致自动化运行时,无法正常驱动浏览器;原创 2023-11-01 14:43:04 · 880 阅读 · 1 评论 -
selenium 判断元素是否存在
方式2是driver内置的方法,显示等待,超时时间20s内,不断重试,只要元素在20s内加载出来了,就返回存在;这比方式1要稳定很多;目的:自动化中通常需要根据元素是否存在,来决定下一步的动作;比如 A存在就点击 下一步,B存在就点击保存;用于控制脚本的逻辑;为什么不用方式1,因为页面加载快慢问题,方式1只会判断一次,恰巧元素正在加载中,那么返回就失败即元素不存在了;selenium中判断元素有几种方式。# 等待元素加载出来。# 判断元素是否存在。原创 2023-10-27 16:47:52 · 3892 阅读 · 0 评论 -
08 robot FrameWork自动化之等待
1、Wait Until Page Contains Element 原始脚本: 优化后脚本: 分析: 1、原始脚本的问题: a、硬等待15S,即使元素是在第1秒加载完,仍然空等14S;脚本效原创 2015-01-22 09:52:37 · 1090 阅读 · 0 评论