目录
前言:
Selenium传统定位基本能解决80%的定位需求,但是还是有一些复杂场景传统定位定不到的场景。在现在框架横行的年代以及快速迭代的开发流程中,开发为了完成任务很多html文档都没有id,class或者其他易于识别的dom元素,虽然使用绝对路径能够定位到,但是你不能保证下次是有效的。因此大部分定位语法基本是使用相对路径定位的,但是相对定位也有个缺点就是有时候定位会有N个匹配,特别是笔者公司做的报表平台,很多控件是复用的,因此你定位到的元素不一定就是你想交互的元素,使用Selenium相对定位能很好解决这个痛点。
相对定位
Selenium 4引入了相对定位器(以前称为友好定位器)。当不容易为所需元素构造定位器,但很容易在空间上描述元素相对于具有易于构造定位器的元素的位置时,这些定位器是有用的
工作原理
Selenium使用JavaScript函数getBoundingClientRect()来确定页面上元素的大小和位置,并可以使用这些信息来定位相邻的元素。找到相关元素。
相对定位器方法可以将先前定位的元素引用或另一个定位器作为原点的参数。在这些示例中,我们将仅使用定位器,但您可以在最后的方法中用元素对象交换定位器,它也会起作用。
让我们考虑下面的例子来理解相对定位器。