Ric*_*ban 6 .net c# selenium google-chrome specflow
我正在围绕.NET中的IWebDriver为我们的测试人员编写一些帮助方法,并开始想知道当你可以使用CSS选择器来获取ID的元素时,是否有任何方法可以通过ID获取元素.
我认为,最终,对CSS"#myelement"的请求将被优化到document.getElementById("myelement").
有性能差异吗?当我们可以使用CSS选择器来完成同样的事情时,我们是否应该使用By.Id和By.Name?
By.cssSelector()比 更快By.id()。
查找元素的方法By.id()实际上是利用xpath:
@Override
public List<WebElement> findElements(SearchContext context) {
if (context instanceof FindsById)
return ((FindsById) context).findElementsById(id);
return ((FindsByXPath) context).findElementsByXPath(".//*[@id = '" + id
+ "']");
}
@Override
public WebElement findElement(SearchContext context) {
if (context instanceof FindsById)
return ((FindsById) context).findElementById(id);
return ((FindsByXPath) context).findElementByXPath(".//*[@id = '" + id
+ "']");
}
Run Code Online (Sandbox Code Playgroud)
其中asBy.cssSelector使用CSS引擎。CSS比 xpath更快,因此,By.cssSelector运行速度比By.id