1

たくさんの人をリストに追加していますが、後でリストから削除したいと考えています。標準の X 要素をクリックしてユーザーを削除するメソッドを作成しました。私の問題は、クリックする X 要素のインスタンスがなくなった時点で、次のようなエラーが発生することです。

"[31morg.openqa.selenium.NoSuchElementException: 要素が見つかりません: {"method":"xpath","selector":"//div[3]/ul/li/div/div/img"} "

しかし、それは私が While ループから抜け出す方法ではありませんか? 要素が null であり、したがって条件が false の場合、while ループが終了してエラー メッセージが表示されないようにする必要はありませんか?

public class PrivacyList extends FluentPage {

@FindBy(xpath="//div[3]/ul/li/div/div/img") 
private FluentWebElement XIcon ;


public void removeUserFromlist(){

    while(XIcon!= null){            
            System.out.println("XICON is displayed");
            XIcon.click();
            System.out.println("XICON was clicked");
        }
    System.out.println("Users Removed");
}

}

ありがとう

4

2 に答える 2

2

PageFactoryは、 を使用し@FindByて WebElement を遅延評価します。これは、初めて使用されることを意味します。1回目以降は再評価なし!したがって、あなたの場合、初めて見つかった場合null、ループを介して毎回再評価しない限り、決してなりません。

ループを終了するには、何か他のものを使用する必要があります。おそらく//div[3]/ul/li要素の数。

于 2015-03-30T17:11:15.410 に答える