在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("..."))
?
答案 0 :(得分:11)
从2.29.0的.NET绑定开始,这是now no longer true。 FindsBy
属性现在可以找到单个元素或元素集合。请注意,FindsBy
属性修饰的集合字段或属性必须为IWebElement
或IList<IWebElement>
类型,才能由PageFactory
填充。任何其他类型都会抛出异常。
答案 1 :(得分:1)
请尝试[FindAllBy(How = How.ClassName, Using = "name")]
。