0

私は Selenium Page factory を使用しており、特定の拡張機能を作成したいのですが、シールされているためできないため、独自のカスタム ロジックを作成したいと考えています。

質問 : PageFactory.InitElements は、このメソッドが呼び出されたときではなく、使用されるときにすべてのプロパティが値をロードするようにどのように機能しますか..

だから、例でそれを説明するには

    //// Button on page load 
    [FindsBy(How = How.CssSelector, Using = "#lst-ib")]
    public IWebElement Btn;

    //// Button redirecting to Page 2
    [FindsBy(How = How.CssSelector, Using = "#lst-ib")]
    public IWebElement LinkBtn;

    ////Button on second page
    [FindsBy(How=How.CssSelector, Using = "#rso > div:nth-child(1) > div > div:nth-child(1) > div > div > h3 > a")]
    public IWebElement NewBtn;

そのため、ページ ファクトリの優れた点は、すべての要素が読み込まれますが、使用時に webelements に変換されることです。これは、すべてのプロパティに初期化時に値が割り当てられている場合、ページ 2 のように NewBtn プロパティが常に失敗するためです。

したがって、実行時ではなく使用時に割り当てられるようにプロパティを初期化するためにどのような概念を使用している可能性があるか、ダミーコードは素晴らしく、理解していただければ幸いです

前もって感謝します

4

2 に答える 2