Selenium 什么';关于PageObject,隐式Wait和RetryingElementLocator之间的区别是什么?

Selenium 什么';关于PageObject,隐式Wait和RetryingElementLocator之间的区别是什么?,selenium,selenium-webdriver,webdriver,pageobjects,Selenium,Selenium Webdriver,Webdriver,Pageobjects,当我使用PageObject并且我想设置一个时间来等待页面上的元素时,然后我使用隐式等待: Driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(3)); 这意味着当我的页面对象初始化时: PageFactory.InitElements(Driver, this); 然后它将等待不少于3秒的元素 我最近还发现了硒的另一个特征: 此类代码: 据我所知,它允许为PageObject设置页面上等待元素的时间 用法示例如下:

我使用PageObject并且我想设置一个时间来等待页面上的元素时,然后我使用隐式等待:

Driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(3));
这意味着当我的页面对象初始化时:

PageFactory.InitElements(Driver, this);
然后它将等待不少于3秒的元素

我最近还发现了硒的另一个特征:

此类代码:

据我所知,它允许为PageObject设置页面上等待元素的时间

用法示例如下:

IWebDriver driver = new ChromeDriver();
RetryingElementLocator retry = new RetryingElementLocator(driver, TimeSpan.FromSeconds(5));
IPageObjectMemberDecorator decor = new DefaultPageObjectMemberDecorator();
PageFactory.InitElements(retry.SearchContext, this, decor);

所以问题是:如果两种方法之间有任何区别,那么什么时候最好使用第二种方法?

不,我想两者都不同一种是隐式等待适用于所有,但RetryingElementLocator是显式等待适用于特定的WebElement,但它适用于PageObject中的所有元素。但是如果你是对的,那么问题是WebDriverWait-Untill方法和RetryingElementLocator之间有什么区别?是的,RetryingElementLocator充当WebDriverWait(java),直到在预期条件下工作