2016-06-08 10 views
0

Hallo, ich bin neu bei Selenium Webdriver. Ich kann eine Webseite erfolgreich öffnen und Elemente darauf finden.Selenium Webdriver nicht zurück Javascript-Code

In einem Fall habe ich festgestellt, dass es einen Link auf einer Seite gibt, der nach einer Weile klickbar wird. In Firebug auf der Registerkarte Skript kann ich den Code für das JavaScript sehen, das die Timer-Funktion ausführt.

Aber mit Selen WebDriver wenn ich ausgeben:

driver.PageSource 

ich nicht den Quellcode für das Javascript sehen. Eine Verzögerung von 30 Sekunden vor dem Anfordern der Quelle macht keinen Unterschied. Ich habe versucht, es mit verschiedenen Optionen zu finden mit:

und so weiter, aber es ist nicht da.

Wie kann der firebug den Javascript-Quellcode finden und anzeigen? Gibt es eine Möglichkeit, Selenium Webdriver dazu zu zwingen, den gesamten von der Seite referenzierten Code zurückzugeben?

Oder gibt es einen besseren Ansatz?

Danke für jede Beratung!

EDIT ---------------------

Ich habe versucht, die folgenden in Firefox:

Dim Driver2 As IWebDriver = New Chrome.ChromeDriver 
Driver2.Url = "http://mypage" 
Dim js As IJavaScriptExecutor = TryCast(Driver2, IJavaScriptExecutor) 
Dim title As String = DirectCast(js.ExecuteScript("return JSON.stringify(window)"), String) 

und ich bekam

Permission

ich las den Zugriff auf Eigenschaft 'toJSON' bestreiten, dass dies nicht funktioniert in Firefox so habe ich versucht, in Chrome und bekam

einen Rahmen mit Ursprung „http://mypage“ Blockiert ein Querursprungsrahmen

und von dort keine Lösungen den Zugriff auf, weil nach this sein eine Sicherheitsbeschränkung, offenbar können Sie nicht zugreifen mit Javascript

Ich fange an zu denken, dass ich ein bisschen aus meiner Tiefe hier bin.

Antwort

0

PageSource wahrscheinlich eine genaue Momentaufnahme des DOM & usw. nicht

Sie kehren stattdessen Javascript driver.executeScript() mit inspizieren können, aber die Belastung der Rückkehr Gegenstand der Analyse entmutigend sein kann.

Egal - Hier ist ein konstruiertes Beispiel:

Object result = driver.executeScript("return JSON.stringify(window)"); 
System.out.println(result.toString()); 
+0

für Ihre Antwort so vielen Dank. Ich habe das versucht, bin aber auf einige Probleme gestoßen, siehe die geänderte Frage. – TripleAntigen