Как использовать XPATH для доступа к атрибуту / свойству iframe? - PullRequest
0 голосов
/ 29 февраля 2020

Как видите, я не пытаюсь получить доступ к чему-либо изнутри фактического окна iframe, а сам тег 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>

Я пытаясь получить строку, которая назначена идентификаторам данных свойства, как я могу получить это с помощью 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; он выиграл ' я не могу получить доступ к указанной строке c, на которую я пытаюсь сослаться:

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

Когда я использую это, оно не работает, оно все равно выделяет весь iframe.

знаете, как получить доступ только к строке между кавычками, присвоенной атрибуту «data-ids» тега iframe?

Существует ли команда, аналогичная команде JS getAttribute() в Xpath? Я хочу вернуть только "1J2cSrn6ox4, BUQzSn85NMs, Fzav6plKfr8, MsNJTTP3LMM, hTZLXnY7Gc0".

Update 2

Теперь я использую JavaScript "инспектор" внутри 1048 * чтобы оценить ссылку 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; Я спрашиваю, как нацелить строковое значение атрибута без преобразования его в строку.

1 Ответ

0 голосов
/ 01 марта 2020

В идеале //iframe/@data-ids должно возвращать значение.

enter image description here

Можете ли вы уточнить, какое сообщение вы получаете и где вы пытаетесь использовать xpath.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...