3

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("..."))

4

2 に答える 2

13

.NET バインディングの 2.29.0 の時点で、これはtrue ではなくなりました。このFindsBy属性は、個々の要素または要素のコレクションを見つけるようになりました。FindsBy属性によって装飾されたコレクション フィールドまたはプロパティは、IWebElementまたはIList<IWebElement>によって入力されるために、 タイプである必要があることに注意してくださいPageFactory。他の型は例外をスローします。

于 2012-09-26T00:54:07.363 に答える
1

[FindAllBy(How = How.ClassName, Using = "name")]代わりに試してください。

于 2012-09-25T23:26:29.383 に答える