私は基本的にボタンが押されるたびに新しいテキストフィールドを作成するWebページを自動化しています。 PageFactoryでFindByアノテーションを使用して、テキストフィールドのリストを探しています。Selenium WebDriverで要素を待っています
ボタンを数回押して複数のテキストフィールドを作成し、そのうちの1つに書き込もうとすると、同期に問題があります。デバッガを踏むと正常に動作しますが、デバッガからFindByがすべてのテキストフィールドを検出するまでに時間がかかります。 現在の回避策は、必要な数のテキストフィールドが見つかるまでスリープしますが、これは非常に不満足です。どのように同期を行うのが最善の方法ですか?
@FindBy(how= How.XPATH, using="//*[contains(@id, 'TextField')]")
private List<WebElement> textFields;
:
:
public void enterText(Integer index, String text){
int attempts = 0;
// Check every 10th of a second for 10 seconds if all the textFields have been found
while ((textFields.size() <= index) && attempts < 100){
Thread.sleep(100);
}
textFields.get(index).sendKeys("blah blah");
}
これを参照してくださいhttp://www.obeythetestinggoat.com/how-to-get-selenium-to-wait-for-page-load-after-a-click.html – dnit13