从ILST中删除web元素<;IWebElement>;在硒中使用C#

从ILST中删除web元素<;IWebElement>;在硒中使用C#,c#,list,selenium,C#,List,Selenium,如果出现某些情况,我实际上试图从IList中删除元素,但似乎得到了相同的列表.Countnumber。下面是我的代码: [FindsBy(How = How.XPath, Using = "//button[@aria-label='delete']")] private IList <IWebElement> _deleteIcons; ******** SOME CODE HERE ********** for (var i = 0; i<_de

如果出现某些情况,我实际上试图从IList中删除元素,但似乎得到了相同的列表
.Count
number。下面是我的代码:

    [FindsBy(How = How.XPath, Using = "//button[@aria-label='delete']")]
    private IList <IWebElement> _deleteIcons;

******** SOME CODE HERE **********

    for (var i = 0; i<_deleteIcons.Count; i++)
                {
                    if (_deleteIcons[i].GetAttribute("disabled").Contains("true"))
                    {
                        _deleteIcons.RemoveAt(i);
                    }
                }
    Debug.WriteLine(_deleteIcons.Count);
[FindsBy(How=How.XPath,Using=“//button[@aria label='delete']”)
私有IList _deleteIcons;
********这里有一些代码**********

for(var i=0;i这是在for循环之前需要做的事情

_deleteIcons = [CODE_TO_GET_ELEMENETS].ToList()
那么这就行了

或者,您可以使用Linq来实现这一点,而无需此循环:

_deleteIcons = [CODE_TO_GET_ELEMENETS].Where(x => x.GetAttribute("disabled").Contains("true"))

最简单的方法是使用CSS选择器,只选择那些未被禁用的按钮。这样会更快,以后也不需要过滤

"button[aria-label='delete']:not([disabled])"

我也遇到过类似的情况,我使用LINQ查询来重建我正在创建的列表


我知道你已经有了答案,但也只是把它摆出来。

两种方法都有效,但你的方法似乎更方便。接受它作为答案。谢谢!