¿Cómo podemos verificar si un campo está protegido contra escritura (es decir, de solo lectura) en Selenium utilizando código Java?Selenium Webdriver: verifique que el cuadro de texto esté protegido contra escritura.
Saludos
¿Cómo podemos verificar si un campo está protegido contra escritura (es decir, de solo lectura) en Selenium utilizando código Java?Selenium Webdriver: verifique que el cuadro de texto esté protegido contra escritura.
Saludos
se puede tratar de escribir algo a través de SendKeys() y comprobar que el atributo valor del cuadro de texto no ha sido cambiado.
Gracias por todas estas respuestas. de alguna manera experimenté todas estas ideas e implementé la elegida. WebElement usernameElement = driver.findElement (By.id ("nombre de usuario")); usernameElement.sendKeys ("SampleText"); – ABCDEFG
Como no sé para qué necesita esa verificación, voy a publicar algunos ejemplos que pueden ser útiles.
driver.findElements(By.cssSelector("input:not([readonly='readonly'])[type='text']"));
=> devuelve todos los campos de entrada de texto que se pueden editar
WebElement element = driver.findElement(By.id("username");
//can fail if the attribute is not there
String attribute = element.getAttribute("readonly");
=> puede ser que necesite un bloque intento de captura
cómo escribir para el selenio RC? –
no puedo ayudarte con eso, solo estoy usando webdriver y grid2 – Tarken
Está bien :-). Gracias :-)). Obtuve la solución –
con 2.21.0 selenio en Java se puede comprobar si su habilitada
driver.findElement(By.id("...")).isEnabled()
uso como esto:.
WebElement some_element = driver.findElement(By.id("some_id"));
String readonly = some_element.getAttribute("readonly");
Assert.assertNotNull(readonly);
no verifican getAttribute ("sólo lectura") igual ("verdadero") o similares, en diferentes navegadores que puede ser diferente también. (readonly = "readonly" en IE, readonly = "" en FF, etc.)
A continuación se muestra el código que mejor funciona para mí. Espero que esto sea útil
WebElement fieldName = driver.findElement(By.id("enter_id"));
fieldName.sendKeys("abc");
String fieldNameVal = fieldName.getAttribute("value");
if(fieldNameVal.contentEquals("abc")){
System.out.println("Field is editable");
}
else{
System.out.println("Field is non editable" + fieldNameVal);
}
Esta es una respuesta tardía, pero debido a que estoy trabajando en esto recientemente, me gustaría compartir mi solución.
Implementé un método para comprobar si un cuadro de texto es de solo lectura o no. Estoy trabajando en un proyecto de Django por lo que el código está en Python, pero yo creo que es fácil portarlo a Java:
from django.contrib.staticfiles.testing import StaticLiveServerTestCase
class MyTest(StaticLiveServerTestCase):
def setUp(self):
self.browser = webdriver.Firefox()
def _is_text_box_read_only(self, web_element):
old_text = web_element.get_attribute("value")
web_element.send_keys("test")
new_text = web_element.get_attribute("value")
web_element.clear()
web_element.send_keys(old_text) # Resume to the previous text
return old_text == new_text
Tenga en cuenta que:
value
a obtener el texto ingresado.
¿hay algún atributo en html que muestre que la caja está protegida? – Tarken
sí, hay un campo llamado 'readonly'. los siguientes detalles son específicos de este campo ---- – ABCDEFG