关于PageObject的ImplicitlyWait和RetryingElementLocator之间的区别是什么?

时间:2016-04-26 12:00:54

标签: selenium selenium-webdriver webdriver pageobjects

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

Driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(3));

这意味着我的页面对象正在初始化时:

PageFactory.InitElements(Driver, this);

然后它将等待不少于3秒的元素。

我最近发现了Selenium的另一个功能: RetryingElementLocator class

此课程代码: https://seleniumhq.github.io/selenium/docs/api/dotnet/html/T_OpenQA_Selenium_Support_PageObjects_RetryingElementLocator.htm

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

使用示例是下一个:

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

所以问题是:如果两种方法之间存在任何差异,那么当它使用第二种方法时会更好吗?

0 个答案:

没有答案