Как узнать xpath для iframes. Ниже изображение прикреплено - PullRequest
0 голосов
/ 17 сентября 2018

Мне нужно найти текст "бренды, связанные с вашим поиском" на изображении ниже

Как мне написать xpath. Текст присутствует в iframe, у которого нет идентификатора, класса или уникального идентификатора.Я думал найти его, используя идентификатор компонента span span, но он не работал.

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

Пожалуйста, помогите

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

1 Ответ

0 голосов
/ 22 сентября 2018

Вы не можете пройти элементы на <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 , которые предоставляют средства взаимодействия между доменами.

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