我正在尋找一些建議。能夠了解靜態方法PageFactory.InitElements,以便我能夠一個接一個地運行我的測試
有沒有人知道我將如何得到這個靜態方法PageFactory.InitElements,以便我能夠運行我的測試一個接一個?
背景
當我嘗試運行我的硒類的webdriver陸續使用MSunit。我收到以下錯誤。
OpenQA.Selenium.WebDriverException:意外的錯誤。 System.Net.WebException:無法連接到遠程服務器---> System.Net.Sockets.SocketException:由於目標機器主動拒絕,無法建立連接127.0.0.1:7055
我知道如果我要從所有類中刪除靜態(基於我之前詢問過的這個問題: - Attempting to run multiple Selenium Webdriver tests using Nunit fails,測試將運行,但是我的自動化框架的結構需要這些靜態數據。發現PageFactory.InitElements(Browser.Driver, currentIncidentsPage);
它採用Static方法。
我的Automation Framework設置的方式出是如下
E2ETest
RegressionTestsFolder
- AboutsUsTests.cs
TestFramework
- PageObjectsFolder
- AboutUsPage.cs
- HomePage.cs
- 瀏覽器。CS
- PageObjectsFolder
AboutUsTests類
public class AboutUsTests
{
[TestMethod]
public void Go_To_About_Us_Page_Link_Test()
{
Pages.HomePage.Goto();
Pages.HomePage.SelectAboutLink();
Assert.IsTrue(Pages.AboutUsPage.IsAt());
}
}
頁類
public static class Pages
{
public static HomePage HomePage
{
get
{
var homePage = new HomePage();
PageFactory.InitElements(Browser.Driver, homePage);
return homePage;
}
}
public static AboutUsPage AboutUsPage
{
get
{
var aboutUsPage = new AboutUsPage();
PageFactory.InitElements(Browser.Driver, aboutUsPage);
return aboutUsPage;
}
}
}
瀏覽器類
{
using System;
using System.Linq;
using System.Threading;
using OpenQA.Selenium;
using OpenQA.Selenium.Firefox;
public static class Browser
{
private static readonly IWebDriver webDriver = new FirefoxDriver();
public static ISearchContext Driver
{
get
{
return webDriver;
}
}
public static string Title
{
get
{
return webDriver.Title;
}
}
public static void Goto(string url)
{
webDriver.Url = url;
}
public static void Close()
{
webDriver.Close();
}
}
}
主頁類
public class HomePage
{
private static readonly string Url = "http://myurl.com";
private static readonly string PageTitle = "My title page";
[FindsBy(How = How.CssSelector, Using = "[href*='/about/']")]
private IWebElement aboutUsLinkElement;
public void Goto()
{
Browser.Goto(Url);
Browser.BrowserMax();
}
public bool IsAt()
{
return Browser.Title == PageTitle;
}
public void SelectAboutLink()
{
this.aboutUsLinkElement.Click();
}
}
}
AboutUsPage類
namespace TestFramework.PageObjects
{
using System;
using TestFramework.Interfaces;
using OpenQA.Selenium;
using OpenQA.Selenium.Support.PageObjects;
public class AboutUsPage
{
private static readonly string PageTitle = "About Us";
public bool IsAt()
{
return Browser.Title == PageTitle;
}
}
}
任何幫助將感激學徒,因爲我一直轉圈圈試圖弄清楚這一點。
感謝
你也使用nunit框架嗎?你的測試者是什麼? – AlexCharizamhard
https://github.com/AlexMoll91/SeleniumExample如果您想要使用pagefactory並使用nunit運行的示例的參考。 – AlexCharizamhard
我現在使用MSunit作爲測試運行器, – ChrisMcLellan