我环顾了一下网上和文档,试图找出这个问题的具体答案,但到目前为止还没有找到答案。
假设我有一个自定义容器元素,它包含站点上的某个部分,比如说,其中有一组嵌套元素。使用driver.findElement或WebElement.findElement查找内部元素会更快吗?它们是否每次都必须与浏览器交互,或者后者是否发生在内存中?
希望这个问题有意义。
干杯。
发布于 2018-05-08 06:50:36
driver.findElement()和webelement.findElement()基本上使用相同的原理来使用给定的方法找到第一个WebElement。findElement()调用将返回匹配的行,或反复尝试,直到达到配置的超时(通过implicitWait或explicitWait)为止。
因此,从性能的角度来看,使用driver.findElement()或webelement.findElement()不会产生影响。
那么有什么关系呢?
最重要的是您选择的定位器策略以及实现它们的方式。文档明确提到:
在使用xpath时,请注意,驱动程序遵循标准约定:
//为前缀的搜索将搜索整个文档,而不仅仅是当前节点的子节点。.//将搜索限制在此WebElement的子级。结论
在使用.//时,使用前缀限制搜索仅限于引用WebElement的子级。
发布于 2018-05-08 00:55:18
我要说的是,总的来说,这需要同样的时间/你不会注意到差别。除非它是一个非常复杂的页面,但在这种情况下,您可能已经遇到了在测试中管理页面状态的更大问题。
您提到的这两个调用都将产生对selenium服务器的远程HTTP调用,这将比在HTML树中搜索元素花费更多的时间。因此产生的时间将大致相同。
现在,考虑到您的页面加载时间,通常比findElement调用慢几个订单。
那么,你是想加快考试速度,还是这个问题只是出于好奇?
https://stackoverflow.com/questions/50223975
复制相似问题