2

我可以通过 xpath 找到我的对象//div[@id='menu-groups-group1']

这是 -

//div[@id='menu']//div[@class='menu-items-block menu-groups']//div[@id='menu-groups-menu1']

相同的对象但更长的 xpath。

我的对象的 xpath 长度有关系吗?是否影响对象的搜索速度?

4

1 回答 1

5

是的,这很重要,是的,它会影响速度。

  • //div[@id='menu-groups-group1']告诉 WebDriver 中的 XPath 处理器查找<DIV>文档中具有.id属性的所有元素menu-groups-group1。然后,根据您正在执行的操作(例如findElement()findElements()),它可能会在找到第一个操作后停止,也可能不会停止。
  • //div[@id='menu']//div[@class='menu-items-block menu-groups']//div[@id='menu-groups-menu1']告诉 WebDriver 中的 XPath 处理器查找<DIV>文档中id属性为 的menu所有元素,然后查找<DIV>嵌入在这些元素中任意深度且class属性为 的所有元素,menu-items-block menu-groups然后查找所有<DIV>嵌入的元素在这些元素中的任何深度并且id具有menu-groups-group1'. 然后,根据您正在执行的操作(例如findElement()findElements()),它可能会在找到第一个操作后停止,也可能不会停止。

如您所见,较长的 XPath 具有更复杂的处理,并可能创建更大的元素集以供检查。

id('menu-groups-group1')使用 XPath或者甚至使用 WebDriver会更好By.id('menu-groups-group1')。使用示例的第二种形式的唯一原因是menu-groups-group1id 不是唯一的。在这种情况下,开发人员应该为自己感到羞耻。

于 2012-08-28T15:06:04.867 回答