Поскольку PageFactory устарела в последней версии Selenium C#, я пытаюсь переписать существующие объекты PageObject, как показано в приведенном ниже фрагменте кода. Все работает как и прежде, за исключением случаев, когда элементы еще не загружены. Я написал ExplicitWaitConditions перед взаимодействием с ними, но я получаю исключение NoSuchElementException в самом FindElement(By.Id("email")) до того, как оно достигнет ExplicitWaitConditions. Он отлично работает, когда я использую PageFactory. Помощь и предложения очень ценятся
private IWebDriver driver;
public LoginPage(IWebDriver _driver)
{
driver = _driver;
//if (driver != null)
//{
// PageFactory.InitElements(driver, this);
//}
}
//[FindsBy(How = How.Id, Using = "email")]
//public IWebElement txtUserName { get; set; }
//No such element exception is thrown by below line
public IWebElement txtUserName => driver.FindElement(By.Id("email"));
В основном я пытаюсь понять, как добиться ленивой инициализации без использования PageFactory. Поскольку ошибка выдается еще до того, как элемент будет доступен.