FindBy注释用于查找WebElements列表

时间:2012-09-25 23:16:57

标签: c# list selenium webdriver

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

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

现在,我正在使用c#而我正在尝试使用:

做同样的事情
[FindsBy(How = How.ClassName, Using = "name")]
private List<IWebElement> names;

然而,这给出了例外:

  

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

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

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

2 个答案:

答案 0 :(得分:11)

从2.29.0的.NET绑定开始,这是now no longer trueFindsBy属性现在可以找到单个元素或元素集合。请注意,FindsBy属性修饰的集合字段或属性必须为IWebElementIList<IWebElement>类型,才能由PageFactory填充。任何其他类型都会抛出异常。

答案 1 :(得分:1)

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