2014-02-18 11 views
8

Ich verwende Selenium, um automatisierte Tests auf einer Seite auszuführen, die einen CodeMirror-Editor enthält. Ich habe keinen Zugriff auf das Objekt, aber ich habe jQuery verfügbar. Wie kann ich den Inhalt des Editors so bearbeiten, dass CodeMirror die Änderung erkennt?CodeMirror Inhalte ohne Zugriff auf Objekt programmgesteuert bearbeiten

+1

Wenn jemand für Python-Selen Umgang mit Codemirror Redakteure suchen würde, ist hier eine [Probe] (http://stackoverflow.com/a/34485327/771848). – alecxe

Antwort

11

Das Umbruchelement div (mit der Klasse CodeMirror) hat eine Eigenschaft CodeMirror, die auf das Editorinstanzobjekt verweist. Sie können setValue darauf anrufen.

7

Dies hier zu veröffentlichen, da die gewählte Antwort mir geholfen hat, aber mir fehlten einige Informationen, um mein Problem vollständig zu lösen (hauptsächlich wegen mir nicht zu wissen, JavaScript oder wie mit WebElement Eigenschaften zu interagieren). Dies ist, wie der Code wie für Selen/Java aussehen:

WebDriver driver = new FirefoxDriver(); 
WebElement queryInput = driver.findElement(By.cssSelector("div[class='CodeMirror']")); 
JavascriptExecutor js = (JavascriptExecutor) driver; 
js.executeScript("arguments[0].CodeMirror.setValue(\"" + query + "\");", queryInput); 
+0

funktioniert wie ein Charme !! – Nitiraj

+0

Ich bekomme Argumente [0] .CodeMirror ist nicht definiert. – user3233451

Verwandte Themen