gpt4 book ai didi

javascript - 如何在 #document 中通过 XPath 查找元素

转载 作者:行者123 更新时间:2023-11-30 19:35:08 24 4
gpt4 key购买 nike

我有一个带有 <embed src=......> 的 html 页面.里面#document被使用并且嵌套的 html 页面在那里。如何通过 XPath 在内部查找元素 #document

我正在尝试使用 JavaScript

WebElement element = driver.findElement(By.xpath("//div[contains(@id,'Recaptcha')]')]"));

screenshot of a DOM tree

最佳答案

XPath 将无法访问主文档中被替换元素的内容。

如果您的内容是根据同源策略加载的,那么您可以直接使用替换文档中的 XPath。但是 是一个奇怪的野兽......与 或 <iframe> 元素不同,它不公开 contentDocument 属性,而是公开 getSVGDocument() 方法。但正如其名称所示,此方法旨在获取 SVG 文档,而某些浏览器(至少是 Chrome)会拒绝为您提供 HTML 文档中的任何内容 ( while Firefox is ok with it )

因此要让它在这些浏览器中工作,您需要使用其他元素,例如 <iframe>。从那里,您应该能够获取其 contentDocument 并将其设置为 XPath 查询的根:

iframe.onload = e => {
const doc = iframe.contentDocument; // get the contentDocument
// evaluate XPath
const query = doc.evaluate("//div[contains(@id,'Recaptcha')]')]", doc);
const node = query.iterateNext();
// ... do something with node
}

As a fiddle因为 Stack-Snippets 不允许 SOP 友好的框架。

关于javascript - 如何在 #document 中通过 XPath 查找元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56016579/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com