J'essaie de répertorier les noms de tous les iframe
s 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?
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')
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.
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"))
}