web-dev-qa-db-fra.com

Comment saisir juste un élément - en utilisant Selenium WebDriver 2

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:

enter image description here

10
Nick Kahn

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

}
17
Santoshsarma

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)

0
eugene.polschikov

Si vous n'avez besoin que d'un seul identifiant:

String id = driver.findElement(By.xpath("//*[contains(text(), 'Your text')]")).getAttribute("id");
0
user7398648