¿Cómo seleccionar un elemento de entrada HTML por su valor actual con CSS o XPath?
¿Es posible seleccionar un elemento de entrada HTML por su valor actual utilizando selectores CSS o XPath?
Mi control de entrada es generado por una aplicación de React como:
<input name="documents"
placeholder="Documents" required="" type="file" value="">
¿O las funciones document.query… y document.evaluate() solo consultan el documento cargado inicialmente?
En JavaScript puedo obtener el valor actual de una entrada. Pero estoy tratando de escribir un selector para SeleniumIDE contra una aplicación React. Mis esfuerzos actuales son:
xpath = // input [contains (@value, 'document ')]
o
css = input [value * = 'document ']
pero mientras puedo seleccionar fácilmente por nombre, no logro seleccionar por valor.
En la consola del navegador encuentro que
document.querySelector (" input [name = documents] ").value
me da un valor “C: \ fakepath \ Upload a document.txt”
pero
document.querySelector (" input [value * = doc] ")
no me da nada.
davy.ai
Es posible seleccionar un elemento de entrada HTML por su valor actual utilizando selectores de CSS o XPath. Sin embargo, parece que en el caso de una aplicación de React, las funciones
document.query...
ydocument.evaluate()
solo consultan el documento inicialmente cargado.En este caso particular, la función
document.querySelector("input[name=documents]").value
recupera el valor del elemento de entrada, perodocument.querySelector("input[value*=doc]")
no selecciona por valor.Es importante tener en cuenta que el uso de
contains()
en XPath o*=
en selectores de CSS busca una subcadena dentro del valor del atributo. Por lo tanto, sería más efectivo usar el valor exacto del elemento de entrada al buscarlo.En general, puede ser necesario usar métodos o marcos alternativos, como React Testing Library o Enzyme, para interactuar con elementos dinámicos en una aplicación de React.