Ausgabe
Ich kann mit Selenium .sendKeys keinen Wert in das Feld schreiben. Also verwende ich jsCode:
element = xpath(//pre[@role='presentation'])
executeJavaScript("arguments[0].value='RESPONSE';", element)
und
executeJavaScript("arguments[0].setAttribute('value', 'RESPONSE')", element);
Ich kann nicht verstehen, warum diese Methoden nicht funktionieren – der Test wird bestanden, aber der Wert wird nicht in das Feld geschrieben
$("div pre").append("RESPONSE")
– Arbeiten Sie in devTools
Vollständiger HTML-Code:
<body>
<div style="position: relative;">
<div aria-hidden="true" class="CodeMirror-gutter-wrapper" style="left: -30px;">
<div class="CodeMirror-linenumber CodeMirror-gutter-elt" style="left: 0px; width: 21px;">
1
</div>
</div>
<pre class="CodeMirror-line" role="presentation"><span role="presentation" style="padding-right: 0.1px;"><span></span></span></pre>
</div>
</body>
Lösung
Wenn Sie versuchen, an den Inhalt des pre
Tags anzuhängen, verwenden Sie so etwas wie executeJavaScript("arguments[0].append('RESPONSE')", element);
. Das sollte die Antwort an das Element in anhängen arguments[0]
.
Wenn Sie versuchen, ein Attribut mit dem Namen value
des pre
Elements festzulegen. Dann "arguments[0].setAttribute('value', 'RESPONSE')"
setzt <pre role='presentation' value="RESPONSE">
.
Beantwortet von – Nils Kähler
Antwort geprüft von – Mary Flores (FixError Volunteer)