Java の Selenium/WebDriver で自動化されたテスト ケースを作成しています。既存の WebElements をポーリングするために次のコードを実装していますが、私は Java の専門家ではないため、このメソッドをよりクリーンに記述する方法があるかどうか疑問に思っていました。
/** selects Business index type from add split button */
protected void selectBusinessLink() throws Exception
{
Calendar rightNow = Calendar.getInstance();
Calendar stopPolling = rightNow;
stopPolling.add(Calendar.SECOND, 30);
WebElement businessLink = null;
while (!Calendar.getInstance().after(stopPolling))
{
try
{
businessLink = findElementByLinkText("Business");
businessLink.click();
break;
}
catch (StaleElementReferenceException e)
{
Thread.sleep(100);
}
catch (NoSuchElementException e)
{
Thread.sleep(100);
}
catch (ElementNotVisibleException e)
{
Thread.sleep(100);
}
}
if (businessLink == null)
{
throw new SystemException("Could not find Business Link");
}
}
この特定の行は、コードが少し汚れていると私に思わせるものです:
while (!Calendar.getInstance().after(stopPolling))