Я думаю, что вы ищете что-то вроде этого
public static void ClickLink_Accounts() throws IOException
{
waitForHeader();
find(Accounts).isDisplayed();
CaptureScreenshot.Screenshot(driver, "Application HomePage-");
}
public static void ClickLink_Tasks() throws IOException
{
waitForHeader();
find(Tasks).isDisplayed();
CaptureScreenshot.Screenshot(driver, "Application HomePage-");
}
public static void waitForHeader()
{
new WebDriverWait(driver, 50).until(ExpectedConditions.elementToBeClickable(header));
}
Но ... когда я смотрю на ваши два метода ClickLink *, я вижу много дублированного кода.Я хотел бы найти способ объединить эти два (и, возможно, другие будущие методы) в один, который принимает параметр.Я предполагаю, Accounts
и Tasks
являются By
локаторами, так как вы переходите в метод find()
?Если это так, вы можете сделать это
public static void ClickLink(By locator) throws IOException
{
waitForHeader();
find(locator).isDisplayed();
CaptureScreenshot.Screenshot(driver, "Application HomePage-");
}
и значительно упростить ваш код.См. DRY для получения дополнительной информации.