如何找出iframe的xpath。下面是图片

时间:2018-09-17 20:54:47

标签: xpath iframe

我需要在下图中找到文字“与您的搜索相关的品牌”

我该如何写xpath。该文本存在于没有ID或类或唯一标识符的iframe中。我当时想使用跨度数据组件ID来找到它,但它不起作用。

By.xpath(“ // span [@ data-component-id = '36'] / iframe

请帮助

https://i.stack.imgur.com/7EW5n.png

1 个答案:

答案 0 :(得分:0)

您无法遍历<iframe>上的元素,它位于不同的上下文中。您需要激活或切换到iframe的上下文,例如。使用JavaScript与iframe和其中的文档进行交互。

//Note: Assigning document.domain is forbidden for sandboxed iframes, i.e. on stacksnippets
//document.domain = "https://stacksnippets.net";

var ifrm = document.getElementById("myFrame");
// reference to iframe's window
//var win = ifrm.contentWindow;
// reference to document in iframe
var doc = ifrm.contentDocument ? ifrm.contentDocument : ifrm.contentWindow.document;
// reference an element via css selector in iframe
//var form = doc.getElementById('body > div > div.message');
// reference an element via xpat in iframe
var xpathResult = doc.evaluate("/html/body/div/div[1]", doc, null, XPathResult.ANY_TYPE, null);
<iframe id="myFrame" src="https://stacksnippets.net" style="height:380px;width:100%"></iframe>

但是,正如您看到的那样,在运行摘要后,跨文档交互仅在文档具有相同来源的情况下才可行。还有其他更复杂的方法,例如postMessage方法,提供了交互跨域的方法。