Помогите пожалуйста разобраться в вопросе явных и неявных ожиданий.
После просмотра лекций, я понял (но пока как-то не до конца) что лучше использовать явные ожидания, через WebDriverWait. В тоже время для этого нужно отключить неявные, имплицитные ожидания.
1 вопрос: правильно ли я понял, что их нужно отключать (ставить на 0)?
2 вопрос: как теперь (после отключения) работает поиск элементов на страницах, например в таком виде:
@FindBy(id = "logOutButton") private WebElement logoutButton;
3 вопрос: в менеджере страниц, есть метод инициализации элементов, в котором снова есть какие-то ожидания (10 секунд):
private <T extends BasicPage> T initElements(T page) { PageFactory.initElements(new AjaxElementLocatorFactory(webDriver, 10), page); return page; }
Что это за 10 секунд? Это тоже относится к ожиданиям?
4 вопрос: как вообще работает поиск и ожидания для страниц? Вот для примера к этой:
public class DashboardPage extends BasicPage { @FindBy(id = "logOutButton") private WebElement logoutButton; public DashboardPage(ApplicationManager appManager) { super(appManager); } public DashboardPage clickLogoutButton() { logoutButton.click(); return this; } }
В этом случае поиск элемента будет осуществляться при выполнении метода clickLogoutButton? Или в какой момент? И с каким ожиданием?
Прошу прощения за множество вопросов, но я был бы рад, если вы мне поможете уяснить эту тему. Буду очень благодарен за помощь!