Атата - Как определить предупреждение в классе страницы? - PullRequest
1 голос
/ 26 июня 2019

Я хочу протестировать следующее приложение: https://romashov.tech/chat

Это код моей главной страницы:

using Atata;
using _ = Chat.Tests.Model.MainPage;

namespace Chat.Tests.Model
{
    [Url("")]
    public class MainPage : Page<_>
    {
        [FindById("send")]
        public Button<_> Send { get; private set; }
    }
}

Когда я запускаю тест, у меня возникает следующее исключение:

OpenQA.Selenium.UnhandledAlertException : unexpected alert open: {Alert text : Your name:} (Session info: chrome=75.0.3770.100)

Как я могу определить это в классе страницы?Как я могу поставить ник в этом предупреждении?

1 Ответ

1 голос
/ 26 июня 2019

Вы можете добавить метод (с именем EnterAs или как-то еще) к объекту вашей страницы, который будет обрабатывать оповещения о подсказках с помощью API WebDriver:

using Atata;
using OpenQA.Selenium;

namespace Chat.UITests
{
    using _ = MainPage;

    public class MainPage : Page<_>
    {
        [FindFirst]
        public TextInput<_> Message { get; private set; }

        [FindByClass("send-button")]
        public Button<_> Send { get; private set; }

        public _ EnterAs(string name)
        {
            IAlert alert = Driver.SwitchTo().Alert();
            alert.SendKeys(name);
            alert.Accept();

            Driver.SwitchTo().DefaultContent();

            return Owner;
        }
    }
}

Затем использовать его в тесте следующим образом:

Go.To<MainPage>().
    EnterAs("SomeUser").
    Message.Set("test message").
    Send.Click();
...