web-dev-qa-db-fra.com

Sélénium getText

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;"/>
6
Ciuc lpgfmk

http://Selenium.googlecode.com/svn/trunk/docs/api/Java/org/openqa/Selenium/WebElement.html#getText ()

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.

11
azraelAT

Java ele.getAttribute("innerHTML"); 

Cela pourrait rendre le texte déjà en arrière-plan et non encore affiché sur la page.

2
Boyka Zhu

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");
0
SeekanDestroy

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.

0
Danstahr