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

Tej*_*jas 15 selenium webdriver

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

我已经在许多地方读过XPath是正确的候选者,但却找不到准确的原因.

Jim*_*ans 32

按ID查找元素通常是最快的选项,因为从根本上来说,它最终会调用document.getElementById(),这是由许多浏览器优化的.

通过XPath查找元素对于使用非常复杂的选择器查找元素非常有用,并且是最灵活的选择策略,但它有可能非常慢,特别是在IE中.在IE 6,7或8中,通过XPath查找比在Firefox中执行相同操作要慢一个数量级.IE不提供原生的XPath-over-HTML解决方案,因此项目必须使用JavaScript XPath实现,而旧版IE中的JavaScript引擎确实要慢得多.

如果您需要使用复杂选择器查找元素,我通常建议使用CSS选择器(如果可能).它不像XPath那么灵活,但会覆盖许多相同的情况,而不会在XP上表现出对XP的极端性能损失.