[英]How to work out if two different selectors point to the same element on a page?
鉴于以下页面
<div id="something">
<div id="selected">
</div>
</div>
在剧作家中,我有两个这样的选择器..
selectorA = "#something >> div >> nth=1";
selectorB = "#selected";
这两个选择器指向页面上的同一个元素。 如何比较两个选择器/定位器以确定它们是否指向同一个元素?
您可以使用document.querySelector
检索两者并比较两个 object,如果它是相同的元素,它们将引用相同的元素。
document.querySelector(selectorA) === document.querySelector(selectorB)
我发现了如何做到这一点。
async function compareLocators(firstLocator: Locator, secondLocator: Locator): Promise<boolean> {
const firstHandle = await firstLocator.elementHandle();
const secondHandle = await secondLocator.elementHandle();
return firstLocator.page().evaluate(
compare => compare.left.isEqualNode(compare.right),
{ left: firstHandle, right: secondHandle }
);
}
现在你可以给这个 function 提供两个定位器,如果它们指向同一个定位器,它会返回真/假。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.