le pilote.executeScript() renvoie NullPointerException pour javascript simple
js.executeScript("return document.title")
fonctionne bien comme prévu, mais je ne sais pas pourquoi mon code renvoie pointeur null erreur. quel est le problème ici?
String testJs= "function test() {arr = 111; return arr;}; test();";
JavascriptExecutor js = (JavascriptExecutor) driver;
int a = (Integer) js.executeScript(testJS);
Ce n'
cest là (dernière ligne) son lancement nullpointer erreur
js.executeScript()
retour? Javadoc dit clairement One of Boolean, Long, String, List or WebElement. Or null.
.cest là (dernière ligne) son lancement nullpointer erreur
OriginalL'auteur Sudhakar | 2013-08-29
Vous devez vous connecter pour publier un commentaire.
Ce javascript
Appelle la méthode
test()
mais ne pas faire n'importe quoi avec le résultat, c'est à dire. ne pas retourner à l'appelant.Donc
sera de retour
null
et essayer d'être déréférencé qui va échouer en raison de déférencenull
jetteNullPointerException
.Javadoc pour
JavascriptExecutor.html#executeScript(java.lang.String, java.lang.Object...)
Peut-être que vous voulez le javascript
Cela fonctionne pour moi
Il l'a fait échouer avec un
ClassCastException
? Il suffit de changer le type de la variable. Parce que ça fonctionne pour moi.Désolé je me suis trompé avant. Oui, votre suggestion fonctionne parfaitement. J'avais oublié la ligne importante
One of Boolean, Long, String, List or WebElement. Or null
. Je vous remercie pour votre temps. L'apprécier.Vous êtes les bienvenus. Bonne chance!
OriginalL'auteur Sotirios Delimanolis
Oui, l'essentiel est de ne pas oublier d'insérer le retour, f.e.:
OriginalL'auteur Andrii Bogachenko