Selenium迭代列表C#

时间:2017-09-14 14:19:11

标签: c# selenium selenium-webdriver webdriver

我需要创建一个循环遍历列表并搜索特定文本的简单循环。找到文本后,它应向下滚动到该选项,使其可见,然后单击它。我想出了类似的东西,但它在java中,我需要c#中的代码,任何人都可以帮助我解决语法,因为我只是在学习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");
    }
}

2 个答案:

答案 0 :(得分:0)

请尝试,

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");
        }
    }

答案 1 :(得分:0)

这个怎么样?

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))));
 }
}

这将检查是否有包含项目文本的选项,如果有,那么它将选择所述元素的索引。

很抱歉,如果我在手机上有任何错误。

我希望它有所帮助。