一、问题提出:

后台前端框架改版,之前是angularjs,现在用vue,导致input标签定位失败,只能定位到第一个input标签,查看后台源代码发现这两个标签是一模一样,如下图:

二、问题思考过程

1.为什么以前的版本可以定位成功,而现在的就定位不了啦
查阅之前版本的这部分定位代码,发现原来的框架是用xpath定位,并且每个元素有自己的id做区分,所以我们可以做分别定位
2.改版后,使用xpath定位,为什么只能定位上传第一个图片
因为两个标签是一样的,如果使用input标签定位是做不了区分的,当定位到第一个完成后,第二个定位方式与第一个一致,还是继续会定位到第一个标签,然后操作

三、问题解决过程

1.通过查阅资料,发现可以使用label定位label标签,我们看下图发现,input标签是一样的,并且有一个div和input标签平级,然后外边包着一层div,然后外边又包着一层div,然后外边也有一层div,这个div平级中有一个label标签,两者平级外还有一层div。
通过发现两者包裹着的div只有label标签是不同的,根据for属性做了区分,比如for="cover",和for="image",我们可以从这里入手,先根据label属性定位,然后定位到他的兄弟div,然后再往里定位两层div,然后就可以定位到input标签就可以了
定位代码:
//label[@for="cover"]/following-sibling::div/div/div/input
定位语法:
获取兄弟元素标签名:following-sibling::兄弟元素标签名
获取父级元素标签名:parent::父元素标签名

四、总结

1.遇到问题不要慌
刚开始定位不到的时候,试了很多种方法,一度想放弃使用ui自动化,后来隔段时间在思考,或许就会豁然开朗,解决之后,发现很简单嘛
2.善于使用搜索
当不知道怎么解决后,使用搜索之后,看了很多解决方式都解决不了自己的问题
我们如果输入"web自动化元素定位不到",会发现乱七八糟的答案,根本找不到我们想要的,所以我们需要优化下问题:"vue 相同标签 定位不到 ",发现第一个就是我们想要的答案

vue框架,input相同标签如何定位-label定位的更多相关文章

  1. Vue框架-03:JS的几种循环方式,Key值的解释,数组/对象的检测与更新,input事件,v-model数据双向绑定,过滤案例,事件修饰符,按键修饰符,表单控制

    目录 前端开发之Vue框架 一.JS循环的几种方式 1.v-for可循环的变量 2.js的循环方式 二.Key值的解释 三.数组.对象的检测与更新 四.input事件 五.v-model双向数据绑定 ...

  2. Vue 框架-03-键盘事件、健值修饰符、双向数据绑定

    Vue 框架-03-键盘时间及健值修饰符 一.键盘事件,当按键盘时,在控制台输出提示 html 源码: <!DOCTYPE html> <html> <head> ...

  3. vue框架学习笔记(vue入门篇)

    vue框架 - 构建用户界面的渐进式框架 - 采用自底层向上增量开发的设计 - 核心库只关注视图层 - 当与单文件组件和vue生态系统支持的库结合使用时,也完全能够为复杂的单页应用程序提供驱动 - v ...

  4. vue新手入门之使用vue框架搭建用户登录注册案例,手动搭建webpack+Vue项目(附源码,图文详解,亲测有效)

    前言 本篇随笔主要写了手动搭建一个webpack+Vue项目,掌握相关loader的安装与使用,包括css-loader.style-loader.vue-loader.url-loader.sass ...

  5. 如何将原生微信小程序页面改成原生VUE框架的H5页面

    项目背景: 公司为了实现小程序与H5页面共同覆盖,全面推广.特此想将已有的小程序进行快速改造上线(二周内),研发出H5版本.目前公司前端技术较为薄弱,现有的技术解决方案还停留在JSP. 问题: 如何将 ...

  6. Vue框架之双向绑定事件

    Vue框架之双向绑定事件 首先介绍下Vue框架的语法 vue通过 {{temp}} 来渲染变量 {{count+100}} # 求和 v-text # 为标签插入text文本 v-html # 为标签 ...

  7. Vue框架

    Vue框架 环境: windows python3.6.2 Vue的cdn: <script src="https://cdn.jsdelivr.net/npm/vue"&g ...

  8. 20190325-HTML框架、audio标签、vedio标签、source标签、HTML表单

    目录 1.HTML框架 frameset:框架标记 frame:框架内文件 iframe:内嵌框架 2.audio标签 src:URL(可以用source标签替代) autoplay:自动播放 pre ...

  9. VUE框架的初识

    VUE框架的初识 初步了解Vue.js框架(渐进式前端框架) Vue.js是一种轻量级的前端MVVM框架.同时吸收了React(组件化)和Angular(灵活指令页面操作)的优点.是一套构建用户界面的 ...

  10. 10.vue框架

    vue框架 易用.灵活.高效 https://cn.vuejs.org/ mvc M model 数据 模型 V view 视图 dom操作 C controller 控制器 路由 C oBtn.on ...

随机推荐

  1. 第二章 VM与Linux的安装

    1. VMWare 安装 ​​ ‍ ​​ ‍ ‍ 2. CentOS 安装 ‍ 安装网址:https://blog.csdn.net/qq_41819965/article/details/11118 ...

  2. 1.6 编写双管道ShellCode后门

    本文将介绍如何将CMD绑定到双向管道上,这是一种常用的黑客反弹技巧,可以让用户在命令行界面下与其他程序进行交互,我们将从创建管道.启动进程.传输数据等方面对这个功能进行详细讲解.此外,本文还将通过使用 ...

  3. EDP转LVDS屏转接板方案芯片CS5211替代CH7511B电路设计

    CS5211替代CH7511B电路设计: CS5211用于设计DP转LVDS转换器,DP转LVDS控制板,DP转LVDS转接板等产品设计,其性能和参数可以替代与兼容PS8622,PS8625,CH75 ...

  4. Python单元测试之道:从入门到精通的全面指南

    在这篇文章中,我们会深入探讨Python单元测试的各个方面,包括它的基本概念.基础知识.实践方法.高级话题,如何在实际项目中进行单元测试,单元测试的最佳实践,以及一些有用的工具和资源 一.单元测试重要 ...

  5. Verilog实现奇分频电路

    在FPGA中,计数器电路用途很广,一般计数器电路都可作为分频电路.实现占空比为50的偶分频电路很好实现.但实现占空比为50的奇分频电路有点难度.下面给出一个简单例子,记录学习奇分频电路的过程. 实现占 ...

  6. MySQL_Explain详解

    当我们在工作中面临SQL优化的问题时,熟练掌握适合的工具,就能使事半功倍,提高工作效率.其中,EXPLAIN工具就是一种常用且高效的SQL优化工具. EXPLAIN关键字的使用方法是,在select语 ...

  7. zabbix6.4 邮件告警配置

    1.注意事项 QQ邮箱不支持zabbix6以上邮件配置,报拒绝登录 建议使用163.com网易邮箱地址 2.添加媒介 创建媒介类型-> 3.添加用户 一般情况下,无需创建用户,编辑admin即可 ...

  8. 从read 系统调用到 C10M 问题

    一.前言 从上个世纪到现在,工程师们在优化服务器性能的过程中,提出了各种不同的io模型,比如非阻塞io,io复用,信号驱动式io,异步io.具体io模型在不同平台上的实现也不一样,比如io复用在bsd ...

  9. BUUCTF Reverse-[FlareOn6]Overlong-动态调试

    没有什么问题,直接进 三个函数,字符串也没啥特殊的 应该是个加密 返回上面分析 数据很大,你忍一下 也就是说它会找28位加密 然后我们接着分析 这个提示刚好28位 也就是说28位对应这个框 如果我们修 ...

  10. Ubuntu虚拟机安装以及在Ubuntu上安装pycharm

    一.在VMware上安装Ubuntu操作系统 1.下载Ubuntu镜像文件 下载地址:清华大学开源软件镜像站 | Tsinghua Open Source Mirror 参考文章:Ubuntu系统下载 ...