Я начал проект Selenium на С#. Попытка подождать, пока страница закончит загрузку, и только после этого перейдите к следующему действию.
Мой код выглядит следующим образом:
loginPage.GoToLoginPage();
loginPage.LoginAs(TestCase.Username, TestCase.Password);
loginPage.SelectRole(TestCase.Orgunit);
loginPage.AcceptRole();
внутри loginPage.SelectRole(TestCase.Orgunit):
RoleHierachyLabel = CommonsBasePage.Driver.FindElement(By.XPath("//span[contains(text(), " + role + ")]"));
RoleHierachyLabel.Click();
RoleLoginButton.Click();
Я ищу элемент RoleHierachyLabel. Я пытаюсь использовать несколько способов дождаться загрузки страницы или поиска свойства элемента, позволяющего использовать некоторый тайм-аут:
1. _browserInstance.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(5));
2. public static bool WaitUntilElementIsPresent(RemoteWebDriver driver, By by, int timeout = 5)
{
for (var i = 0; i < timeout; i++)
{
if (driver.ElementExists(by)) return true;
}
return false;
}
Как бы вы справились с этим препятствием?