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

台州网络建站模板做视频网站的上市公司

台州网络建站模板,做视频网站的上市公司,磁力搜索器,做考试平台的网站前言 UI自动化测试可以快速、准确地执行大量的测试用例#xff0c;减少人工测试所需的时间和劳动力。能够在短时间内完成多个测试用例的执行#xff0c;提高测试的效率和速度。但是UI自动化有个最大的痛点。当前端界面发生变化时#xff0c;往往页面元素定位也会改变#…前言 UI自动化测试可以快速、准确地执行大量的测试用例减少人工测试所需的时间和劳动力。能够在短时间内完成多个测试用例的执行提高测试的效率和速度。但是UI自动化有个最大的痛点。当前端界面发生变化时往往页面元素定位也会改变这时就需要投入大量的人力和时间进行修改导致我们最初引入UI自动化的初衷(节省人力、时间成本提高测试效率和速度)不能很好的实现。针对这个问题本篇文章介绍了怎么使用图片定位的方法进行UI自动化测试抛弃传统的元素定位方式这样前端页面元素样子没有发生变化我们就不需要修改维护脚本。如果元素样子发生了变化我们只需要将以前的元素图片换一张就可以。 介绍 本篇内容主要使用Python、Selenium、PyAutoGUI、OpenCV实现了UI自动化测试使用图片定位方式。我们将页面元素截取成一个个单独的图片实际上可能在UI设计后这些图片都已经由UI设计师切图完成我们只需要拿到这些切图就可以了。我们将这些元素切图和整体页面进行对比找出图片在整体界面上的坐标点然后使用Selenium的ActionChains接口执行页面交互操作就可以了。 实现方式 由于Selenium大家都比较熟悉就不过多介绍了不熟悉的同学可以参考我之前写的文章《Selenium4.0详细介绍》。 PyAutoGUI是一个Python 第三方库需要pip install 安装 。它允许我们通过编程方式模拟鼠标和键盘的操作窗口操作以及界面的截图匹配。由于它是照搬人的操作底层没有套牢在Windows系统所以它可以跨平台。 OOpenCV开源计算机视觉库是计算机视觉和机器学习领域广泛应用的一个强大工具它提供了丰富的API支持多种编程语言包括C、Python、Java等。 安装 pip install pyautogui pip install opencv-python # 本人在使用过程中由于要用到截图有个报错需要更新Pillow版本和安装gnome-screenshot如果没有遇到相关报错可以忽略下面 pip install Pillow --upgrade sudo apt install gnome-screenshot定位图片位置 首先我们将被测系统的元素图片截图准备好。需要进行的操作是向接口名称输入框中输入‘test’。 系统页面 元素截图 定位图片位置 import cv2 import pyautoguiinput_img cv2.imread(input.jpg) # confidence参数设置了匹配度阈值,范围0到1,值越高要求越精确。 input_img_location pyautogui.locateOnScreen(input_img, confidence0.8) # 获取输入框图片在整体页面的坐标位置获取的是输入框图片的中心点位置 input_img_x, input_img_y pyautogui.center(input_img_location) # input_img_x 370 input_img_y 250通过上面的方法我们获取到了输入框的坐标点下面用Selenium元素定位看一下位置是否正确。 from selenium import webdriver from selenium.webdriver.common.by import Byinput_el driver.find_element(By.XPATH, //*[idapp]/section/section/div/form/div[1]) input_el_location input_el.location print(input_el_location[x], input_el_location[y]) # 220 80我们发现两个方法获取的坐标点不一样由于Selenium获取的是元素的左上角的点所以我们看一下元素的高和宽计算一下。 从上图可以看出元素的宽是296高是41通过计算Selenium获取的元素中心点位置为(368100.5)x轴坐标没有什么问题y轴坐标差别有点大。造成这种问题的原因可能是PyAutoGUI获取的是整个电脑屏幕的尺寸而Selenium获取的可能是浏览器页面的尺寸我们获取一下他们的整体尺寸对比一下。 import pyautogui from selenium import webdriveroptions webdriver.ChromeOptions() options.add_argument(--start-maximized) driver webdriver.Chrome(optionsoptions) driver.get(http://172.17.0.1/apitest/#/api?id79) pyautogui_size pyautogui.size() #获取系统页面尺寸 selenium_size driver.find_element(By.ID, app).size print(pyautogui_size, selenium_size) # Size(width1920, height1080) {width: 1920, height: 860}通过上面的对比发现y轴确实不一样经过查看发现Selenium获取的是浏览器整个窗口的尺寸PyAutoGUI获取的是整个电脑屏幕的尺寸所以我们需要做一个转换 # 我们将获取的元素坐标值减去Selenium和PyAutoGUI的坐标相差的值就是实际Selenium操作需要的坐标值我的y值加70是因为我的操作系统是ubuntu下面有Dock高是70. x img_x - (pyautogui_x - selenium_x) y img_y - (pyautogui_y - selenium_y) 70示例 现在我们写一个脚本使用图片定位的方式向接口名称输入框输入“test”。 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.action_chains import ActionChains import pyautogui import cv2options webdriver.ChromeOptions() options.add_argument(--start-maximized) driver webdriver.Chrome(optionsoptions) driver.get(http://172.17.0.1/apitest/#/api?id79) pyautogui_size pyautogui.size() selenium_size driver.find_element(By.ID, app).size input_img cv2.imread(img/input.jpg) input_img_location pyautogui.locateOnScreen(input_img, confidence0.8) input_img_x, input_img_y pyautogui.center(input_img_location) x input_img_x - (pyautogui_size.width - selenium_size[width]) y input_img_y - (pyautogui_size.height - selenium_size[height]) 70 ActionChains(driver).move_by_offset(x, y).click().perform() ActionChains(driver).send_keys(test).perform() driver.quit()最终运行结果 总结 这样我们就完成了使用图片定位页面元素进行操作。避免了因前端改动需要重新定位页面元素的痛点。当然这只是个简单的demo后续项目中使用可能还会遇到其他的问题。包括图形比较复杂的元素图片这个时候我们可以使用confidence来调整匹配度当匹配度为1时(最高)图片的一个像素不一致都会导致无法识别出坐标点。所以可以根据自己的实际情况来调整匹配度。
http://www.w-s-a.com/news/681943/

相关文章:

  • 南京网站c建设云世家 s浏览器
  • 如何做镜像别人网站wordpress菜单对齐修改
  • 长春网站建设net企业公示信息查询官网
  • 金鹏建设集团网站可在哪些网站做链接
  • 电子产品网站开发背景网站关键词优化方案
  • 建网站论坛wordpress提交数据库错误
  • 国内网站建设公司开源网站系统
  • 网站开发公司上大连网站建设流程图
  • 银川网站seo宁波网
  • 个人备案网站会影响吗网站添加 备案
  • 网站建设与电子商务的教案关于旅游网站建设的方案
  • 电子商务网站建设设计原则找做网站找那个平台做
  • 天津高端品牌网站建设韶关网站建设墨子
  • Wordpress多站点为什么注册不了2008iis搭建网站
  • 天津高端网站制作建网站的公司服务
  • 温州网站推广优化类似淘宝的网站怎么做的
  • 网站建设实训考试什么网站做玩具的比较多
  • 上海网站建设特点怎样给公司做一个网站做推广
  • 流量网站怎么做的济南优化排名公司
  • 保定网站制作套餐设计师导航网站大全
  • 惠州 商城网站建设石家庄新闻广播在线收听
  • 洪山网站建设域名购买之后怎么做网站
  • 北京网站建设公司服务哪家好wap是什么意思?
  • 怎么看公司网站做的好不好哦wordpress页面目录下
  • 做装修业务呢有多少网站平台搭建是什么
  • 潍坊优化网站排名淘宝做网站被骗
  • 建设专业网站的利弊免费logo设计生成器下载
  • 怎么在备案号添加网站网页设计动画网站
  • 网站开发 只要wordpress滑动注册
  • 跨境电商运营主要做什么静态网站如何做优化