Je veux getText () en utilisant By.id ou By.cssSelector.
J'ai réussi à résoudre mon problème en faisant getAttribute ("value"), mais je ne comprends pas pourquoi getText () ne fonctionne pas comme prévu, et je pourrais en avoir besoin pour que toute aide soit appréciée.
Voici le Java:
WebDriverWait wait = new WebDriverWait(driver, 10);
Boolean elementIsPresent = wait.until(ExpectedConditions.textToBePresentInElementValue(By.cssSelector("#general_service_name"),"[reg] general_service_name")); // true
//WebElement general_service_name = driver.findElement(By.cssSelector("#general_service_name"));
WebElement general_service_name = driver.findElement(By.id("general_service_name"));
// Display check
Boolean isDisplayed;
if(general_service_name.isDisplayed()) isDisplayed = new Boolean(true); else isDisplayed = false; //true
String text_empty = general_service_name.getText(); //""
String text_with_value = driver.findElement(By.id("general_service_name")).getAttribute("value"); //"[reg] general_service_name"
Et html:
<input id="general_service_name" type="text" value="[reg] title" name="general_service_name" style="float:left;"/>
getText () fournit le texte interne d'un WebElement.
Votre champ de saisie n'a pas de texte interne. Le texte se trouve dans votre attribut value. Par conséquent, y accéder via getAttribute ("valeur") est la méthode correcte pour le faire.
Java ele.getAttribute("innerHTML");
Cela pourrait rendre le texte déjà en arrière-plan et non encore affiché sur la page.
Vous pouvez l'utiliser si vous souhaitez rechercher un texte donné sur un WebElement. En le passant directement ou à travers une chaîne
String textoToSearch = "Text inside Webelement";
driver.findElement(By.id("someID).getText().contains("textToSearch");
Réponse simple - c'est conçu de cette façon. getText()
analyse le contenu de la balise (c’est-à-dire son innerText), qui est évidemment vide pour les entrées.