繁体   English   中英

如果两个不同的选择器指向页面上的同一个元素,如何解决?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM