web-dev-qa-db-fra.com

DOMException non capturée: blocage d'un cadre avec l'origine "http: // localhost: 8080" d'origine pour accéder à un cadre d'origine croisée tout en répertoriant les iframes dans la page

J'essaie de répertorier les noms de tous les iframes d'une page afin de pouvoir y accéder via Selenium.

Le problème est que le nom de iframe change à chaque fois, donc je dois les parcourir en boucle.

Je reçois:

DOMException Uncaught: a bloqué un cadre avec Origin " http: // localhost: 8080 " pour accéder à un cadre d'origine croisée.

erreur lorsque j'essaie de les survoler avec:

for (var f = 0; f < window.frames.length; f++) {
    console.log(window.frames[f].name)
}

Existe-t-il un moyen d'obtenir le nom du iframe d'une manière différente?

1
TwoShorts

Je ne connais pas très bien javascript, mais vous pouvez utiliser Selenium pour obtenir les balises iframe comme ceci:

var iframeElems = driver.findElements(webdriver.By.xpath("//iframe"));

Puis bouclez sur ces éléments et obtenez l’attributname:

iframe.getAttribute('name')
1
PixelEinstein

Solution sale:

pour les fenêtres:

chrome.exe --user-data-dir="" --disable-web-security

pour Mac:

open -a Google\ Chrome --args --disable-web-security --user-data-dir=""

De cette façon, vous ouvrez le chrome et laissez-le ignorer la sécurité Web.

0
Angia

Vous pouvez essayer quelque chose comme ceci: (Pas sûr de JavaScript) 

var iframeElems = driver.findElements(webdriver.By.tagName("iframe"));

itérer cette liste pour obtenir l'attribut. 

for (var f = 0; f < iframeElems.length; f++) {
    console.log(iframeElems.getAttribute("attribute name"))
}
0
cruisepandey