定位元素的父(parent)兄弟(followingsiblingprecedingsibling)节点大海一个人听

做页面自动化时,一些元素总是很难定位,这段时间脚本运行稳定,后面脚本运行越来越不行。我看了他们相关节点的定位,发现他们定位的节点方法过于死板,节点的xpath中含有不定项,后面版本页面改变了以后,原先的xpath就不可用了,导致脚本的不稳定。我经常强调,元素定位的原则就是不变,一定要围绕着一个不变的节点进行定位,xpath写出来一定要够短,越是短的xpath其中出现可变节点的概率越小,下面就介绍一下我在写定位元素中常用的三种定位方式。

如图所示:

这张图上是一个弹框,这种弹框是经常见到的,往往在一个页面中也会出现很多种,那么要点这个弹框中的确定按钮其实很简单,只要//span[text()="确定"]就可以了,但是随便一个弹框都可以这样定位,弹框里的内容变化了也无法及时发现。所以,我们定位的时候要把弹框内容加上,那么如果开发人员擅自更改了内容就会及时的被发现。

这次要定位的一个节点是一个下拉框(图中标黄的节点),这个下拉框是一个可以点击的input节点,根据图片所示,在常规方法中会从上方寻找含有id的节点,那么就是那个form节点了,显而易见,如果这样定位下来,这个节点的xpath就应该写为://form[@id="saveform"]/div[3]/div[3]/span[2]/input[1]。不管这样对不对,这样写的弊端也是显而易见的,xpath很长,并且其中含有大量有角标的节点,由图所示,这个input节点在一个div下面,而这个div上方有很多一模一样的div,那么就是说有很多样子一样的控件挨在一起,这样后面版本中增加一个或者减少一个这样的控件也是很有可能的,一旦上面发生了变化,这个节点的定位就会失败。

如图所示:

从节点上来看,这个也是很多初学者经常遇到的坑,这个span节点虽然看起来有一个id节点,从原则上来讲用id来定位即可,但是仔细观察的话就可以发现,这个节点后面的数字是随机生成的,也就是说有可能这次是这个id下次就不是了。

那么用传统的方法,会从上面有id的节点来找,也就是看起来靠谱的节点有一个ul节点,或者觉得不保险上面还有个含有id的div节点。但是会遇到子节点是动态的情况,导致xpath并不是很稳定。

那么,我们就需要寻找一个比较稳定的节点,可以看到这个节点下方紧挨着就有两个节点,他们有很明显的特征就是含有独特的标识,一个含有title=“山东省”,一个文字就是山东省。这两个节点均可以用来进行定位,这次我们选取下方的span节点。

决定了节点,那么观察得知需要定位的节点是这个span的父节点的兄节点,也就是他的大伯,那么就需要首先定位到他的父节点://span[text()="山东省"]/parent::a,然后再结合上面讲到的定位父节点的方法,那么最终的xpath就是://span[text()="山东省"]/parent::a/preceding-sibling::span。

次介绍的三种xpath辅助定位方法和核心思想就是寻找要定位节点周围不变的节点,用其来进行定位需要的节点,缩短xpath的长度,避免可变节点的出现。

xpath中类似的辅助定位仍然有一些,比如/ancestor、/descendant等祖父、孙子节点,综合使用起来可以使得xpath的定位更加灵活、准确。

THE END
0.如何确定双代号时标网络计划中的关键线路?5. 确定关键工作和非关键工作。对于每个工作来说,如果其自由时差(即不影响紧后工作的最早开始时间的前提下,该工作可以利用的最大机动时间)为0,则此工作就是关键工作;反之则为非关键工作。 6. 连接所有关键节点形成的关键路径即为关键线路。在双代号时标网络计划中,关键线路上的工作没有机动余地,任何一项工作的延jvzquC41yy}/lrfpujk:;7hqo1pjcwqk1dq{n8{42862:7435987<3ujvsm
1.第三节项目活动的排序依据表中的数据,可绘制如下图所示的网络图。 图:用顺序图法绘制的项目网络图 从上图可以看出,在该图中人为添加了“开始”和“结束”两个虚拟节点,因为如果不添加这两个节点,将会造成存在多个无内向箭线的工作(A和D)以及多个无外向箭线的工作(C和F),从而无法判断整个项目的开始节点和结束节点。 jvzquC41yy}/5?5fqe4dp8ftvkimg8:773>2:Bd332;38B=790nuou
2.2024年宁夏回族自治区事业单位公开招聘工作人员报考指南(十四)公告中相关时间节点如何界定? 答:公告及本指南表述中的“公告发布之日前”“公告发布之日后”“公告发布之日”时间为《宁夏回族自治区2024年事业单位公开招聘工作人员公告》正式发布当天的日期,含当日。 如“年龄35周岁以下(1988年2月21日以后出生)”、“2024年应届毕业生提供岗位要求的学历及学位证书时间截止jvzquC41u{jx0qzcvw4dqv4424:02;7314=3:9>90jznn
3.体系工作计划5、10月份进行内审,此次内审覆盖ISO9000所有的条款,内审依据是公司的“质量手册”和流程﹑管理制度及作业文件,涉及所有相关部门,内审检查表由内审员自己填写,内审小组不再包揽,这也是上次监审对我们提出的要求,要求各位内审员履行自己的'职责,提前做好准备。 jvzquC41yy}/;:880eun1|mk{qthynsfcpm0ixsi|wukkqzc13642:90jvsm
4.2022年苏州市中小学幼儿园入学入园招生热点问题全知道!问:苏州市积分入学实施细则适用的范围是什么?仅限苏州市区吗? 答:苏州市流动人口随迁子女积分入学实施细则适用于苏州市区(包括吴江区、吴中区、相城区、姑苏区、工业园区、高新区)。 由于各县(市)区教育资源供需情况不同,流动人口分布情况不同,依据《义务教育法》中规定义务教育属地管理原则,苏州各县市将按照本区域jvzq<84cdtubf77722y{0lto1fud1;5441661;61:7763B3ujvsm
5.IPO案例供应商返款采购模式的会计处理有方科技新浪财经2、金额确定依据 返款金额最终由供应商对公司报送的供应商返款申请资料进行审核,审核通过后开具 Credit Note(抵扣货款凭据) 确定最终的返款金额。 3、相关流程对应的时间节点 公司在产品销售后按供应商要求的返款申请时间(每月或每周) 向供应商提交返款申请,经供应商审核通过,供应商确认对公司应支付的返款。 jvzq<84hkpgoen3ukpg/exr0ep5xo872453136641fud/rrz|zzlhA>963?60|mvon
6.关于业绩说明会会议纪要(精选20篇)4、南方电网综合数据网贵州节点建设项目按南方电网公司招标结果执行,请依据招标机构颁发的《中标通知书》签订合同。 十六、会议审议并通过了2019年贵州电网110kV—500kV输变电工程前期工作项目询价谈判报告,请项目单位依据谈判报告签订合同。 十七、会议审议了2019年第三批主网工程通信传输设备采购方式的议案,由于受技术条件jvzquC41yy}/fr~khctxgw3eqo5gcw|gp1nvk‚nlk{gp1@62699:0qyon
7.下一篇:你是天使节电标语范文它可在建筑物电气装置的设计、安装和检验中直接引用,也可作为我国制订建筑电气有关规范采用IEC/TC64标准的依据。 篇8 >> 基于RSSI的节点定位算法的研究 基于锚节点主动部署机制的WSN节点定位算法综述与分析 基于改进DV―Hop算法的无线传感网节点定位算法研究 基于无线传感网的海洋监测节点定位算法 基于序列的传感器网络jvzquC41yy}/i€~qq0ipo8mcqyko1>;4324ivvq