一尘不染

使用webdriver查找元素的最佳和最快方法是哪种?By.XPath或By.ID还是其他?又为什么呢

selenium

使用webdriver查找元素的最佳和最快方法是哪种?By.XPath或By.ID还是其他?又为什么呢

我在许多地方都读到XPath是合适的候选人,但找不到确切的原因。


阅读 512

收藏
2020-06-26

共1个答案

一尘不染

通常,按ID查找元素将是最快的选择,因为从根本上讲,它最终会调用document.getElementById(),许多浏览器都对其进行了优化。

通过XPath查找元素对于使用非常复杂的选择器查找元素很有用,并且是最灵活的选择策略,但是它可能会非常缓慢,尤其是在IE中。在IE
6、7或8中,通过XPath进行查找可能比在Firefox中进行查找慢一个数量级。IE没有提供本机XPath-over-
HTML解决方案,因此该项目必须使用JavaScript XPath实现,而旧版IE中的JavaScript引擎确实要慢得多。

如果需要使用复杂的选择器查找元素,我通常建议尽可能使用CSS选择器。它不像XPath那样灵活,但是可以涵盖许多相同的情况,而不会表现出XPath可以对IE造成的极端性能损失。

2020-06-26