Dada la siguiente página HTML:WatiN: Al encontrar texto, ¿cómo obtengo una referencia a su elemento contenedor?
<html>
<head>
<title>WatiN Test</title>
</head>
<body>
<div>
<p>Hello World!</p>
</div>
</body>
</html>
Me gustaría ser capaz de buscar un texto (digamos "World"
), y obtener una referencia a su elemento padre (en este caso el elemento <p>
).
Si intento esto:
var element = ie.Element(Find.ByText(t => t.Contains("World")))
o esto:
var element = ie.Element(e => e.Text != null && e.Text.Contains("World"));
le regreso el elemento <html>
. Esto es consistente con la documentación WatiN para Element.Text
que dice: "Obtiene el texto interno de este elemento (y el texto interno de todos los elementos contenidos en este elemento)".
Dado que todo el texto dentro de la página está dentro del elemento <html>
, siempre recuperaré esto en lugar del padre inmediato.
¿Hay alguna manera de obtener solo el texto inmediatamente debajo de un elemento (no el texto dentro de los elementos que contiene)?
¿Hay alguna otra forma de hacerlo?
Muchas gracias.
solución de Niza, gracias! Realmente necesitaría que funcione si el HTML se modificó para ser '
Hola ¡Mundo!
'pero no lo dije en la pregunta, por lo que esta respuesta es correcta. Es justo que lo marque como la respuesta aceptada por el momento. :) –Sí, lo pensé más tarde, pero creo que esta respuesta es un buen comienzo para algo más grande;) – prostynick