在最新版本的量角器equals()
method was added on an ElementFinder
object中。该方法依次调用WebDriverJS的WebElement.equals()
方法:
return webdriver.WebElement.equals(this.getWebElement(),
element.getWebElement ? element.getWebElement() : element);
equals()
方法如何运作?如何检查元素是否相等?显然,仅仅检查innerHTML
是不够的,因为在页面上可以相同地表示两个不同的元素。
答案 0 :(得分:1)
.equals()
javascript selenium绑定的WebDriverJS
方法,首先,比较WebElement
ID (记录在webdriver规范here中),由getId()
方法检索:
var ids = [a.getId(), b.getId()];
return webdriver.promise.all(ids).then(function(ids) {
// If the two element's have the same ID, they should be considered
// equal. Otherwise, they may still be equivalent, but we'll need to
// ask the server to check for us.
if (ids[0][webdriver.WebElement.ELEMENT_KEY] ==
ids[1][webdriver.WebElement.ELEMENT_KEY]) {
return true;
}
// ...
}
如果ID相等,则认为两个元素相等。但是,如果它们不是,那并不意味着元素不相等,在这种情况下,DOM Node Equality的概念通过elementEquals()
wrapped method发挥作用。节点等式检查背后的逻辑基于比较节点类型,属性,命名空间,子节点数等。