Atata C#如何打开新标签页?

问题描述

如何在Chrome浏览器中打开新标签页?

  • 我可以在考试开始时打开:

              AtataContext.Configure()
                  .UseChrome()
                  .WithArguments("new tab")
    
  • 我试图按快捷方式“ CTRL + T:

    [PressKeys("control" + "t",TriggerEvents.AfterClick)]

OR

.Press("^t");

解决方法

显然,对于chromedriver,CTRL + T组合不再起作用。但是我们可以使用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");