我需要帮助将多个浏览器测试夹具合并到我的框架中。 我的目标是通过定义testFixture的类型(ChromeDriver,InternetExplorerDriver等)依次在多个浏览器上运行测试。
我已经按照Pluralsight上的教程构建了我的框架。现在它看起来像这样:
TestClass:LoginTest
[TestFixture]
public class LoginTest : PortalTest
{
[Test]
public void LoginUser()
{
Assert.IsTrue(HomePage.IsAt, "Failed to login. ");
}
}
接下来,PortalTest基类:
public class PortalTest
{
[SetUp]
public void Init()
{
Driver.Initialize();
LoginPage.Goto();
LoginPage.LoginAs("user").WithPassword("pass").Login();
}
[TearDown]
public void CleanUp()
{
Driver.Close();
}
}
使用GoTo()的LoginPage:
public class LoginPage
{
public static void Goto()
{
//var wait = new WebDriverWait(Driver.Instance, TimeSpan.FromSeconds(10));
//wait.Until(d => d.SwitchTo().ActiveElement().GetAttribute("id") == "UserName");
Driver.Instance.Navigate().GoToUrl(Driver.BaseAddress + "Account/LogOn?ReturnUrl=%2FHome");
if (Driver.Instance.Title != "Login")
{
throw new Exception("Not on Login page");
}
}
我的Driver类用于初始化FirefoxDriver:
public class Driver : TestBase
{
public static IWebDriver Instance { get; set; }
public static void Initialize()
{
Instance = new FirefoxDriver();
// wait 5 sec
Instance.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(5));
}
从代码中可以看出,Driver类继承了TestBase类。它定义了多个浏览器情况,并返回相应的驱动程序。
我尝试了几次,但都没有成功。我参考了以下相关帖子: https://dev59.com/52445IYBdhLWcg3wH2rH#7854838
http://makit.net/testing-aspdotnet-mvc-application-with-selenium-and-nunit