1

Finder 属性引数は有効ですか、つまり実際に使用できますか?、使用しようとすると、「'Finder' は有効な名前付き属性引数ではないため、有効な属性パラメーター タイプではありません」というコンパイラ エラーが表示されます。

[FindsBy(Finder = By.Id("test").FindElement(By.TagName("iframe")))]    
public IWebElement Test{ get; set; }

誰かが Finder 属性引数を使用した実際の例を持っていますか、それともバグですか?

コードを参照してください: http://code.google.com/p/selenium/source/browse/trunk/dotnet/src/WebDriver.Support/PageObjects/FindsByAttribute.cs?r=17167#

またhttp://msdn.microsoft.com/en-us/library/aa664615%28VS.71%29.aspxから、属性クラスの位置および名前付きパラメーターの型は、属性パラメーターの型に限定されます。

次の型のいずれか: bool、byte、char、double、float、int、long、short、string。型オブジェクト。タイプ System.Type。public アクセシビリティがあり、それが入れ子になっている型 (存在する場合) も public アクセシビリティを持つ列挙型 (セクション 17.2)。上記の型の 1 次元配列。

私の知る限り、Byは上記のタイプのいずれでもないため、コンパイラエラーが発生しますか、それとも間違っていますか?

私がやろうとしているのは、次のようなページ オブジェクトの WebElement プロパティとして ckeditor テキスト ボックスを取得することです。

[FindsBy(Finder = By.Id("cke_Details").FindElement(By.TagName("iframe")))]
public IWebElement Details { get; set; }

これを達成できる他の方法はありますか?助けてくれてありがとう

4

1 に答える 1

4

これは、.NETFindsByAttribute実装のバグです。Finderプロパティを使用しようとしないでください。まったく機能しません。代わりに次を使用します。

// WARNING: Completely untested code here. Not guaranteed to 
// work correctly, or even to compile.
[FindsBy(How = How.Id, Using = "test")]
public IWebElement Test { get; set; }

質問で言及した階層検索パスのようなより複雑なものが必要な場合は、次のように XPath または CSS セレクターによる検索を使用できます。

// WARNING: Completely untested code here. Not guaranteed to 
// work correctly, or even to compile.
[FindsBy(How = How.XPath, Using = "//*[@id='test']/iframe")]
public IWebElement Test { get; set; }
于 2012-08-01T19:34:53.067 に答える