Selenium DOM 搜索顺序
Selenium DOM Search Order
我知道这个问题可能很棘手,需要 help/suggestions。如果 duplicate/bad ,请通过评论告诉我我将删除。
我想了解 Selenium 如何在 DOM 的树结构中进行搜索。
(我问的原因是我刚刚从 Testcomplete 切换。Testcomplete 从下往上搜索。最底部的元素搜索速度更快。另外,如果有 10 个元素具有相同的 ID,并且我们尝试 findelement 而不是 findallelements,它会给出最底部的元素)
那么 Selenium - 它是从树枝的顶部还是底部开始的?让我们看看树如下
<div>
<section1>
<h1>
</h1>
<h2>
</h2>
</section1>
<section2>
<i1>
</i1>
</section2>
<section3>
<j1>
<k1 id='something'>
</k1>
</j1>
<j2>
</j2>
</section3>
</div>
我正在搜索元素 id = 某物。
- 是否先查找
Section 1, h1
标签再向下遍历?或者它从 Section 3 j2
标签开始并向上开始?原因是,在一个非常冗长的 AngularJs 页面中,在顶部搜索 table 会得到更快的结果,而在底部搜索 table 几乎需要大约 15 秒。
其次 - 它是否像连续搜索一样?或垂直?
连续搜索 Section1, h1, h2, section2, i1
等
垂直 - 搜索 Section1, section2, section3
然后 h1,h2,i1
等
了解这一点对于建立良好的元素定位器策略大有帮助。
如果您在 Selenium 中执行 findElement,它将为您提供第一个出现在页面上的元素,其逻辑顺序与 findElement return 如果您在 JavaScript 中执行此操作相同的逻辑顺序。
显然,有多种方法可以进行查找,具体的实现将取决于驱动程序的实现(FireFox、Google、IE 等),但我总是得到我所期望的而不是古怪的 TC。
我的回答是基于我自己对该产品的体验。我找不到任何确切的权威来源来为您记录这一点。
我知道这个问题可能很棘手,需要 help/suggestions。如果 duplicate/bad ,请通过评论告诉我我将删除。
我想了解 Selenium 如何在 DOM 的树结构中进行搜索。
(我问的原因是我刚刚从 Testcomplete 切换。Testcomplete 从下往上搜索。最底部的元素搜索速度更快。另外,如果有 10 个元素具有相同的 ID,并且我们尝试 findelement 而不是 findallelements,它会给出最底部的元素)
那么 Selenium - 它是从树枝的顶部还是底部开始的?让我们看看树如下
<div>
<section1>
<h1>
</h1>
<h2>
</h2>
</section1>
<section2>
<i1>
</i1>
</section2>
<section3>
<j1>
<k1 id='something'>
</k1>
</j1>
<j2>
</j2>
</section3>
</div>
我正在搜索元素 id = 某物。
- 是否先查找
Section 1, h1
标签再向下遍历?或者它从Section 3 j2
标签开始并向上开始?原因是,在一个非常冗长的 AngularJs 页面中,在顶部搜索 table 会得到更快的结果,而在底部搜索 table 几乎需要大约 15 秒。 其次 - 它是否像连续搜索一样?或垂直?
连续搜索
Section1, h1, h2, section2, i1
等垂直 - 搜索
Section1, section2, section3
然后h1,h2,i1
等
了解这一点对于建立良好的元素定位器策略大有帮助。
如果您在 Selenium 中执行 findElement,它将为您提供第一个出现在页面上的元素,其逻辑顺序与 findElement return 如果您在 JavaScript 中执行此操作相同的逻辑顺序。
显然,有多种方法可以进行查找,具体的实现将取决于驱动程序的实现(FireFox、Google、IE 等),但我总是得到我所期望的而不是古怪的 TC。
我的回答是基于我自己对该产品的体验。我找不到任何确切的权威来源来为您记录这一点。