#c# #selenium #atata
#c# #селен #atata
Вопрос:
В Selenium предполагается, что следующий код приведет вас к оповещению. В частности, всплывающее окно входа в систему:
Alert alert = driver.switchTo().alert();
Как это работает с использованием Atata?
Ответ №1:
В Atata вы можете попытаться сделать то же самое, обратившись к экземпляру драйвера напрямую через AtataContext.Current.Driver
:
AtataContext.Current.Driver.SwitchTo().Alert().SetAuthenticationCredentials("username", "password");
Но функциональность этого WebDriver, похоже, не работает в большинстве современных браузеров.
Другой подход заключается в передаче учетных данных внутри URL в виде https://user:pass@example.com/
. Недавно протестировано в Chrome.
Чтобы сделать это с помощью Atata, вы можете установить базовый URL Atata как "https://example.com/"
. Затем добавьте где-нибудь следующий метод (например, в базовом классе fixture):
public static void ApplyBasicAuth(string username, string password)
{
Uri currentBaseUri = new Uri(AtataContext.Current.BaseUrl);
if (!string.IsNullOrEmpty(currentBaseUri.UserInfo))
AtataContext.Current.RestartDriver();
UriBuilder uriBuilder = new UriBuilder(currentBaseUri)
{
UserName = username,
Password = password
};
AtataContext.Current.BaseUrl = uriBuilder.ToString();
}
Этот метод вводит учетные данные в базовый URL.
Затем в тесте вызовите его в качестве первого действия компоновки:
[Test]
public void Test()
{
ApplyBasicAuth("atuser", "atpass");
Go.To<OrdinaryPage>();
// ...
}