У меня есть класс с именем test.cs:
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenQA.Selenium;
using OpenQA.Selenium.Support.PageObjects;
using qa.WrapperFactory;
namespace Common.PageObjects
{
public class Test
{
[FindsBy(How = How.XPath, Using = "xpath")]
private IWebElement foundElement;
[FindsBy(How = How.XPath, Using = "xpath")]
private IWebElement EnvironmentLogoElement;
[FindsBy(How = How.XPath, Using = "xpath")]
private IWebElement UsernameElement;
[FindsBy(How = How.Id, Using = "xpath")]
private IWebElement PasswordElement;
public void Setup()
{
// Set window to full screen
BrowserFactory.Driver.Manage().Window.Maximize();
// Clear all cookies
BrowserFactory.Driver.Manage().Cookies.DeleteAllCookies();
}
public void CheckLoginPage ()
{
WaitMethods.WaitForShort(() => foundElement.Displayed);
Assert.IsTrue(UsernameElement.Displayed);
Assert.IsTrue(PasswordElement.Displayed);
}
}
}
Я хочу вызвать метод public void CheckLoginPage () из шагов спецпотока. это выглядит так:
using System.Configuration;
using Common.PageObjects;
using qa.WrapperFactory;
using TechTalk.SpecFlow;
namespace RegressionTest
{
[Binding]
public class SmokeTestSteps
{
[Given(@"I go to the HRControlnet login page")]
public void GivenIGoToTheHRControlnetLoginPage()
{
BrowserFactory.InitBrowser("Firefox");
var subDomain = ConfigurationManager.AppSettings["Environment"];
BrowserFactory.LoadApplication(subDomain);
}
[Then(@"the result should be on the screen")]
public void ThenTheResultShouldBeOnTheScreen()
{
Test.CheckLoginPage();
}
}
}
Теперь получаю ошибку на шаге ThenTheResultShouldBeOnTheScreen () с
Ошибка CS0120 Ссылка на объект требуется для нестатического поля, метода или свойства.
Я пытался сделать CheckLoginPage () статическим, но тогда все xpaths выдают ошибку.
Кто-нибудь может мне помочь, как это исправить?