#c# #automated-tests #atata
#c# #автоматизированные тесты #atata
Вопрос:
Как открыть новую вкладку в браузере Chrome?
-
Я могу открыть в начале теста:
AtataContext.Configure() .UseChrome() .WithArguments("new tab")
-
Я попытался нажать сочетания клавиш «CTRL T:
[PressKeys("control" "t", TriggerEvents.AfterClick)]
или
.Press("^t");
Ответ №1:
Обновление для Atata v2.2
Новые методы были добавлены в Atata v2.2.0 в Go
класс:
Go.ToNewWindow<TPage>(...)
Go.ToNewWindowAsTab<TPage>(...)
Решение для более старой версии Atata
По-видимому, комбинация CTRL T больше не работает для chromedriver. Но мы можем использовать window.open()
JavaScript, который также открывает новую вкладку.
AtataContext.Current.Driver.ExecuteScript("window.open()");
// You also need to switch to newly opened tab.
Go.ToNextWindow<OrdinaryPage>(); // Set the type of your page object instead of OrdinaryPage.
Go.ToUrl("/someurl"); // Set URL.
Вы также можете извлечь этот блок кода в метод:
public static TPage CreateAndSwitchToNewTab<TPage>(string url)
where TPage : Page<TPage>
{
AtataContext.Current.Driver.ExecuteScript("window.open()");
var page = Go.ToNextWindow<TPage>();
Go.ToUrl(url);
return page;
}
И использовать его в тестах в виде:
CreateAndSwitchToNewTab<ProductsPage>("/products")
.PageTitle.Should.Contain("Products");
Комментарии:
1. Супер! Большое спасибо!
2. Привет, я понимаю, что Iwebdriver не содержит определения для executeScript
3. Правильно @RohitKumar. Для Atata v2
AtataContext.Current.Driver.ExecuteScript("window.open()");
строка должна быть заменена наAtataContext.Current.Driver.AsScriptExecutor().ExecuteScript("window.open()");
.