当我使用PageObject 和时,我想设置一个时间来等待页面上的元素然后我使用ImplicitlyWait:
Driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(3));
这意味着我的页面对象正在初始化时:
PageFactory.InitElements(Driver, this);
然后它将等待不少于3秒的元素。
我最近发现了Selenium的另一个功能: RetryingElementLocator class
据我所知,它允许设置在页面上等待页面元素的时间。
使用示例是下一个:
IWebDriver driver = new ChromeDriver();
RetryingElementLocator retry = new RetryingElementLocator(driver, TimeSpan.FromSeconds(5));
IPageObjectMemberDecorator decor = new DefaultPageObjectMemberDecorator();
PageFactory.InitElements(retry.SearchContext, this, decor);
所以问题是:如果两种方法之间存在任何差异,那么当它使用第二种方法时会更好吗?