Selenium Javascript Executor gibt null zurück

8

Ich habe den folgenden JavaScript-Code, der null zurückgibt, wenn Selenium JavascriptExecutor durchlaufen wurde. Derselbe Code, der in der Firefox-Entwicklerkonsole ausgeführt wurde, hat jedoch einen Wert zurückgegeben.

%Vor%

Das Folgende ist mein WebDriver-Code mit dem JS wie oben:

%Vor%

Oben Ausgaben null anstelle von "Text" -String. Irgendwelche Ideen?

    
Jsm 28.07.2013, 17:05
quelle

2 Antworten

15

Sie müssen return tmp () anstelle von tmp () in der executeScript () -Methode verwenden. Finden Sie die verwandte Referenz driver.executeScript () gibt NullPointerException für einfaches JavaScript

zurück     
Gangadhar 18.02.2014 07:32
quelle
1

Das Problem ist, dass Sie zwei Anweisungen in executeScript() ausführen. Die Funktionsdefinition von tmp () und der Funktionsaufruf von tmp ().

Ich kenne die Details nicht, aber die Funktionsdefinition scheint null zu liefern.

Da executeScript den ersten Wert zurückgibt, der zurückgegeben werden kann, gibt es null zurück. Wenn Sie die Funktion nicht definieren und den Code inline schreiben, wird es funktionieren.

%Vor%

Dies sollte Ihren erwarteten Wert drucken.

Bearbeiten: Auch der von Ihnen gepostete Code wird nicht von "" around [name='q'] entfernt. Dies beendet die Zeichenfolge und führt zu Syntaxfehlern.

    
Timo Türschmann 29.07.2013 09:06
quelle