我可以通过 xpath 找到我的对象//div[@id='menu-groups-group1']
这是 -
//div[@id='menu']//div[@class='menu-items-block menu-groups']//div[@id='menu-groups-menu1']
相同的对象但更长的 xpath。
我的对象的 xpath 长度有关系吗?是否影响对象的搜索速度?
我可以通过 xpath 找到我的对象//div[@id='menu-groups-group1']
这是 -
//div[@id='menu']//div[@class='menu-items-block menu-groups']//div[@id='menu-groups-menu1']
相同的对象但更长的 xpath。
我的对象的 xpath 长度有关系吗?是否影响对象的搜索速度?
是的,这很重要,是的,它会影响速度。
//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-group1
id 不是唯一的。在这种情况下,开发人员应该为自己感到羞耻。