Поскольку PageFactory устарела в последней версии 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. Так как ошибка выдается до того, как элемент будет доступен.