В чем разница между Link и DelegateLink в платформе Atata?
Я не мог понять из документации разницу между Link
а также LinkDelegate
компоненты.
https://atata-framework.github.io/components/
Может ли кто-нибудь объяснить, по каким сценариям вы бы использовали каждый из них?
1 ответ
Решение
Основным отличием является синтаксис использования.
using _ = SamplePage;
public class SamplePage : Page<SamplePage>
{
public Link<_> Save1 { get; private set; }
public LinkDelegate<_> Save2 { get; private set; }
public Link<SamplePage2, _> Navigate1 { get; private set; }
public LinkDelegate<SamplePage2, _> Navigate2 { get; private set; }
}
Для внутренних ссылок без навигации:
Go.To<SamplePage>().
// To click:
Save1.Click().
Save2(). // As it delegate, use it like a method. Provides shorter syntax.
// To verify:
Save1.Should.Exist().
Save2.Should().Exist(); // Should() is extension method.
Для навигационных ссылок:
Go.To<SamplePage>().
Navigate1.ClickAndGo();
Go.To<SamplePage>().
Navigate2(); // Shorter syntax.
То же самое относится и к Button
а также ButtonDelegate
,
Таким образом, если вам часто нужно вызывать ссылку / кнопку и не проверять ее состояние, вы можете использовать опцию делегата, чтобы сохранить синтаксис короткого вызова.