È il loro modo per disabilitare intestazioni / piè di pagina / contenuto appiccicosi a scopo di test
voglio catturare l'intera schermata della pagina web come le estensioni del browser. come uno sparo se lo sai suggeriscimi.
jse.executeScript("var el = document.getElementsByTagName("*");"
+ "for(var i = 0; i < el.length; i++){"
+ " if (el[i].getAttribute("type") == "text/css")"
+ " el[i].parentNode.removeChild(el[i]);"
+ "};"
);
Io sono capace di disabilita tutti i css. ma il mio problema non è disabilitare l'intero css solo l'intestazione fissa / appiccicosa la mia domanda precedente
ArrayList<RemoteWebElement> totalElements = (ArrayList<RemoteWebElement>) jse.executeScript("var x = document.querySelectorAll("*");"
+ "for (var i = 0; i< x.length; i++) {"
+ "if (x[i].style.position == "fixed" || x[i].style.position == "absolute" || x[i].style.position == "relative") {"
+ "x[i].style.position = "static""
+ "}"
+ "}"
+ "return x");
Sto usando questo ma non funziona come previsto.
risposte:
1 per risposta № 1Cosa succede se sovrascrivi solo l'attributo css dell'intestazione?
((JavascriptExecutor) yourDriver).executeScript("document.getElementById("the_id_of_the_header").style.position = "static";");
AGGIORNARE:
Prova questo codice javascript:
var elems = document.body.getElementsByTagName("*");
for(i = 0; i < elems.length; i++)
{
var elemStyle = window.getComputedStyle(elems[i]);
if(elemStyle.getPropertyValue("position") == "fixed")
{
elems[i].style.position = "static";
}
}
Se vuoi controllare più valore, estendi il file if
dichiarazione.