2017-01-12 2 views
0

ich ein Problem konfrontiert bin, kann mir jemand helfen, dies zu klären:Kopieren von Daten von Browser zu einer Datei

Hintergrund: Ich habe eine Sicherung des Codes erstellen existiere im Editor (Code Spiegel), so Der Anwendungsfall ist, dass ich den Code aus dem Editor kopieren und als HTML-Datei speichern muss.

Während die Verwendung der element.getText() und Schreiben in eine Datei funktioniert gut, aber das Problem ist die getText() nur den Code auf dem Bildschirm sichtbar. Da die Codezeilen so variieren, wenn ich Javascript Scrolls verwende, dann hat es nicht funktioniert, da einige Seiten im Editor (Code Mirror) 100 Codezeilen haben oder einige 2000.

Eine andere Lösung, die ich versuchte, ist zu verwenden Aktionsklasse dh Mausaktionen bedeutet Alles auswählen und kopieren zB Keys.COMMAND, "c")). Perform(); Das Problem ist hier, wie kann ich den ausgewählten Text in die Zwischenablage kopieren oder den kopierten Text in die Zeichenfolge speichern, so dass ich BufferedWriter-Klasse ausführen kann.

Würde mich freuen, wenn jemand helfen kann.

+0

Mögliches Duplikat von [Get HTML-Quelle von WebElement in Selenium WebDriver mit Python] (http://stackoverflow.com/questions/7263824/get-html-source-of-webelement-in-selenium-webdriver-using-python) –

+0

@LinhNguyen: Danke für Ihre Antwort. Aber mit diesem Link zu gehen, konnte mein Problem nicht lösen. Wenn Sie hier Code eingeben (https://codemirror.net/demo/theme.html) und versuchen, den Code zu extrahieren, wird nur der Code extrahiert, der sich in der Ansicht befindet. Wenn Sie jedoch nach oben scrollen, sehen Sie, dass ein Div hinzugefügt wurde. Könnten Sie bitte helfen, die Lösung dafür zu liefern? –

Antwort

0

Entschuldigung, ich habe Ihre Frage missverstanden.

Für den Link https://codemirror.net/demo/theme.html, um den Code zu erhalten, sollten Sie zuerst zum Ende des Editors mit executeScript (Scroll to bottom of div?) scrollen. Danach sollte element.getText() Ihnen vollständigen Code geben.

Update: Sie können den Text auch auswählen, indem Sie auf den Editor klicken und dann Strg + A drücken, danach markierten Text durch Ausführen von JavaScript im Browser (Get the Highlighted/Selected text). Sie können dann den Text in Ihrem Testskript bearbeiten.

+0

Danke. Yup, das ist die einmalige Lösung, ich habe 20 Vorlagen, die einen Code unterschiedlicher Länge haben bedeutet, dass eine Seite 100 Zeilen hat und einige 2000. Sieben, wenn ich eine Rolle benutze, kann ich nicht in der Lage sein, dies für alle Fälle zu rechtfertigen. –

+0

Sie können immer überprüfen, ob 'class =" CodeMirror-vscrollbar "existiert oder nicht, und daher entscheiden, scroll oder nein –

Verwandte Themen