EDIT: J'ai aussi essayé cela
var webElements1 = (Driver.FindElements(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_Control1_lstCategory']//input"))).ToList();
Je reçois le texte vide
J'essaie de trouver un moyen de ne saisir que l'ID de la liste que je reçois et voici mon code et une photo d'impression de mon écran.
// WebDriver obtenir une liste de texte
le code ci-dessous me renvoie le nombre correct d'enregistrements mais me donne juste la Text
mais je suis après Text
et Id
d'une Text
particulière
J'ai essayé ceci:
var webElements1 = (Driver.FindElements(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_Control1_lstCategory']/tbody/tr/td/span"))).ToList();
ce
var webElements2 = (Driver.FindElements(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_Control1_lstCategory']/tbody/tr/td"))).ToList();
et ça...
var webElements3 = (Driver.FindElements(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_Control1_lstCategory']"))).ToList();
le tout code de ligne me donne les retours corrects mais sans Id.
Voici l'écran d'impression de ma page:
Après avoir obtenu tous les éléments en utilisant la méthode ci-dessous, lancez en boucle pour obtenir tous les identifiants d'élément:
List<WebElement> element = driver.findElements(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_Control1_lstCategory']//input")));
for(WebElement ele:elements)
{
ele.getAttribute("id"); // for getting id of each element
ele.getText(); //for getting text of each element
}
1) Je vais essayer de partager l'idée de l'approche que je choisirais pour résoudre votre problème:
getElementsByTagName('input');//returns array of elements
2) en utilisant l'attribut de l'élément js executor, en particulier l'ID, en effectuant une itération dans l'ensemble du tableau renvoyé par getElementsByTagName ('input') et en obtenant leurs ID.
public String jsGetColor(String cssSelector){
JavascriptExecutor js = (JavascriptExecutor) driver;
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("var x=$(\'"+css+"\');");
stringBuilder.append("return x.css('color')");
String res= (String) js.executeScript(stringBuilder.toString());
return res;
}
c’est tout simplement mon hypothèse sur la manière dont il est possible d’essayer. espérons que cela vous aide en quelque sorte)
Si vous n'avez besoin que d'un seul identifiant:
String id = driver.findElement(By.xpath("//*[contains(text(), 'Your text')]")).getAttribute("id");