Добрый день!
Имеется документ, содержимое которого заполняется с помощью javascript. Он содержит несколько textarea элементов. Я пытаюсь найти их по их содержимому с помощью Xpath: //textarea[text() = 'value']. Но такой способ не срабатывает, если значение в textarea устанавливалось скриптом через textarea.value = '' (или менялось ручным вводом текста).
Можно ли с помощью XPATH найти textarea и input элементы по их содержимому в .value? Если нельзя, то почему так?
Тест прилагается:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Xpath test</title>
<script type="text/javascript" language="javascript">
function test() {
// set new 'value' value
var textarea = document.getElementById('tx')
textarea.value = 'value'
// XPATH search old 'initial' value
var nodesSnapshot = document.evaluate("//textarea[text() = 'initial']", document, null,
XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null );
for ( var i=0 ; i < nodesSnapshot.snapshotLength; i++ ) {
var ta = nodesSnapshot.snapshotItem(i);
ta.value = 'fail' // set 'fail' if old value was found
}
}
</script>
</head>
<body onload="test();">
<textarea id="tx">initial</textarea>
</body>
</html>