2017-09-14 2 views
-3

Je dois créer une boucle simple qui parcourt une liste et recherche un texte spécifique. Lorsque le texte est trouvé, il devrait faire défiler jusqu'à cette option afin qu'il soit visible, puis cliquez dessus. Je suis venu avec quelque chose comme ça mais il est en java et j'ai besoin le code C#, quelqu'un peut me aider avec la syntaxe depuis que je suis en train d'apprendre C#Sélénium itérant dans la liste C#

public static IWebElement FindListItem(IWebElement listContainer, string itemText) 
{ 
    List<IWebElement> allOptions = listContainer.FindElements(By.XPath("")); 
    for (WebElement we: allOptions) 
    { 
     listContainer.sendKeys(Keys.DOWN); 
     sleep(250); 
     if (we.getText().contains(text)) select.selectByVisibleText("Value1"); 
    } 
} 

Répondre

0

S'il vous plaît essayer,

public static IWebElement FindListItem(IWebElement listContainer, string itemText) 
    { 

     List<IWebElement> allOptions = listContainer.FindElements(By.XPath("")).ToList(); 
     foreach (var webElement in allOptions) 
     { 
      listContainer.SendKeys(Keys.Down); 
      Thread.Sleep(250); 
      if (webElement.Text.Contains(itemText)) 
       select.selectByVisibleText("Value1"); 
     } 
    } 
+0

.getText est souligné avec un message "IWebElement ne contient pas de définition de 'getText' et aucune méthode d'extension 'getText' acceptant un premier argument de type 'IWebElement' n'a été trouvée" ? –

+0

Veuillez essayer webElement.Text et faites le moi savoir. –

+0

Non-invocable membre 'IWebElemnent.Text' ne peut pas être utilisé comme une méthode –

0

Que pensez-vous de cela?

public static void FindListItem(SelectElement select, string itemText) 
{ 
var options = select.Options(); 
if (options.Any(o => o.Text.Contains(itemText)) 
{ 
    select.SelectByIndex(options.IndexOf(options.First(o => o.Text.Contains(itemText)))); 
} 
} 

qui vérifiera s'il y a une option qui contient le texte de l'article et si elle le fait, alors il choisira l'index de cet élément. Désolé s'il y a des erreurs que je fais cela à partir de mon téléphone

J'espère que ça aide.