В чем разница между 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,

Таким образом, если вам часто нужно вызывать ссылку / кнопку и не проверять ее состояние, вы можете использовать опцию делегата, чтобы сохранить синтаксис короткого вызова.

Другие вопросы по тегам