2017-01-30 16 views
1

PageObjectパターンをセレンに使用すると、すべてのロケータをリソースファイルに入れたいと思います。リソースファイルc#Seleniumを持つFindsBy属性

[FindsBy(How = How.Id, Using = "btnUserApply")] 
public Button ApplyButton { get; set; } 

がどの以下のようになり、リソースファイルとFindsBy属性を使用することが可能ならば不思議とすると、エラーを与え、FindsByも継承することはできませんので、密閉されている

[FindsBy(How = How.Id, Using = MyRexFile.btnUserApply)] 
public Button ApplyButton { get; set; } 

行うことはできません。

提案がありますか?

答えて

0

これはできません。 FindsBy注釈は、Usingパラメータとしてconst(コンパイル時に評価される)文字列を受け取ります。リソースファイルからのデータは実行時に評価されます。

すべてのロケータ

public static class Locators 
{ 
    public const string btnUserApply = "btnUserApply"; 
} 

public class PageObject 
{ 
    [FindsBy(How = How.Id, Using = Locators.btnUserApply)] 
    public Button ApplyButton { get; set; } 
} 
+0

を保持するために別のクラスを作成することができますが、それは定数でのみ動作しますと言っていますか?属性を受け入れる独自のカスタムFindsByを作成することはどうでしょうか。これについてはWeb上ではあまりありません。 – developer9969

+0

@ developer9969はい、FindsByは定数でのみ機能します。カスタムの「FindsBy」を作成しようとしたことも、そのような試みに遭遇したこともありませんでした。しかし、おそらくそれは可能です。 – Guy

関連する問題