java 在Selenium中使用CSS选择器定位元素时,在标记名上使用 * 是否会降低效率?

wgx48brx  于 2023-03-16  发布在  Java
关注(0)|答案(1)|浏览(106)

假设我试图找到包含“description”类的所有元素,并且事先知道该类只会出现在<p>标记上,那么下面哪种方法运行得更快?
driver.findElement(By.cssSelector("*.description"))
driver.findElement(By.cssSelector("p.description"))
driver.findElement(By.cssSelector(".description"))
我希望
driver.findElement(By.cssSelector("p.description"))
成为最快的,但是我不确定,因为我在网上找不到任何关于这个的东西。

2hh7jdfx

2hh7jdfx1#

p.description将更快,原因是当它开始在dom中搜索cssSelector的匹配项时,它首先从标签<P>开始,获取具有p的所有标签,然后过滤具有description类的标签。
对于*.description,它将列出所有元素,然后在列表中搜索description
.description是否最快取决于<p>是否只有此类

相关问题