如何使用XPATH访问iframe的属性/属性?

问题描述 投票:0回答:3

您可以看到,我不是在尝试从实际iframe的contentWindow内部访问任何内容,而是在iframe广告代码本身中进行访问。

示例iframe元素:

<iframe id="placeholder"
data-ids="1J2cSrn6ox4,BUQzSn85NMs,Fzav6plKfr8,MsNJTTP3LMM,hTZLXnY7Gc0"
style="100%; 330px;" frameborder="0" allowfullscreen="1"
allow="accelerometer; autoplay; encrypted-media; gyroscope;
picture-in-picture"  width="100%" height="100%"></iframe>

我正在尝试检索分配给属性data-id的字符串如何使用XPath检索此信息?

//iframe[1].data-ids

//*[@id="placeholder"]/@data-ids 

如果我使用JavaScript,则getAttribute函数可以检索:

var frame = document.querySelector('iframe');
var val = frame.getAttribute('data-ids');
alert(val);

但是如何在Xpath中做到这一点?

更新1

[我正在Chrome中使用检查器,在元素下,按CTRL-F搜索XPATH;,这将不允许我访问要引用的特定字符串:

//*[@id="placeholder"]//@data-ids

[当我使用它时不起作用,它仍然突出显示整个iframe。

您是否知道如何仅访问分配给iframe标记的“数据ID”属性的引号之间的字符串?

是否有与Xpath中的JS命令getAttribute()类似的命令?我只想返回“ 1J2cSrn6ox4,BUQzSn85NMs,Fzav6plKfr8,MsNJTTP3LMM,hTZLXnY7Gc0”。

dom xpath iframe browser scripting
3个回答
0
投票
理想情况下,//iframe/@data-ids应该返回该值。

enter image description here

能否请您详细说明您收到的消息以及在哪里尝试xpath。


0
投票
现在确定,我现在在chrome的检查器中使用javascript“ snippet”来评估xpath参考,如下所示:

function getElementByXpath(path) { return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; } test = getElementByXpath("//*[@id="placeholder"]//@data-ids") console.log(test);

并且现在将以下内容输出到控制台:

data-ids="1J2cSrn6ox4,BUQzSn85NMs,Fzav6plKfr8,MsNJTTP3LMM,hTZLXnY7Gc0"

这很好,但是我如何只获得文本?不是名称/值对,不是attrName =“ value”,而是引号之间的含义是什么?怎么样???请帮助我在此只想继续前进

我不问如何使用javascript;我问如何定位属性的字符串值而不将其转换为字符串...以获取没有名称或引号的值。为什么整个互联网上都没有此答案?我需要针对节点本身的价值;仅使用XPATH


0
投票
[我正在Chrome中使用检查器,在元素下,按CTRL-F搜索XPATH;,这将不允许我访问要引用的特定字符串:

//*[@id="placeholder"]//@data-ids

[当我使用它时不起作用,它仍然突出显示整个iframe。

您是否知道如何仅访问分配给iframe标记的“数据ID”属性的引号之间的字符串?

是否有与Xpath中的JS命令getAttribute()类似的命令?我只想返回“ 1J2cSrn6ox4,BUQzSn85NMs,Fzav6plKfr8,MsNJTTP3LMM,hTZLXnY7Gc0”。

© www.soinside.com 2019 - 2024. All rights reserved.