FindBy注释用于查找WebElements列表

在java中,我使用这样的代码来获取具有相同标识符的WebElements列表:

@FindBy(how = How.CLASS_NAME, using = "name") private List names; 

现在,我正在使用c#而我正在尝试使用以下方法执行相同的操作:

 [FindsBy(How = How.ClassName, Using = "name")] private List names; 

但是,这给出了例外:

System.ArgumentException:类型为“Castle.Proxies.IWrapsElementProxy_1”的对象无法转换为类型’System.Collections.Generic.List`1 [OpenQA.Selenium.IWebElement]’。

我已经尝试过FindAllBy和FindBys,但这些似乎没有效果。 无论如何我还能做到这一点

names = getDriver().findElements(By.ClassNames("..."))

.NET绑定中没有类似的用于使用PageFactory属性查找元素列表的Java绑定方法。 有几个人在过去的一段时间里尝试过它,但是没有人能够让Castle Windsor代理行为正常。 我知道.NET绑定的维护者会热切地欢迎这个补丁,所以请随意提交。

更新自2.29.0版本的.NET绑定以来, 现在已经不再适用了 。 FindsBy属性现在将查找单个元素或元素集合。 请注意,由FindsBy属性修饰的集合字段或属性必须是IWebElement类型或IList才能由PageFactory填充。 任何其他类型都会抛出exception。

请尝试[FindAllBy(How = How.ClassName, Using = "name")]