Как работать с объектами instance и project из общего кода c#

Raids

Client
Регистрация
12.09.2017
Сообщения
41
Благодарностей
19
Баллы
8
Вставляю в общий код

Код:
namespace Helpers
{
    public class SmallHelpers
    {
   
        public IZennoPosterProjectModel project;
   
        public Instance instance;
   
        public static void FindHtmlElementByXPathAndClick(string strXpath, int intNumberMath,int intTimeoutInSec)
        {
            Tab Tab1 = instance.ActiveTab;
            for (int i=0;i<intTimeoutInSec;i++){
                if(!Tab1.FindElementByXPath(strXpath, intNumberMath).IsVoid) break;
                Thread.Sleep(1000);
            }
            if (Tab1.FindElementByXPath(strXpath, intNumberMath).IsVoid){
                project.SendErrorToLog("элемент не найден", true);
                throw new Exception("error");
            }
            Tab1.FullEmulationMouseMoveAboveHtmlElement(Tab1.FindElementByXPath(strXpath, intNumberMath), 30);
            Tab1.FullEmulationMouseMoveToHtmlElement(Tab1.FindElementByXPath(strXpath, intNumberMath));
            Tab1.FullEmulationMouseClick("left", "klick");
        }
    }
}
Ругается

Код:
Ошибка при компиляции общего кода "CS0120" "Для нестатического поля, метода или свойства "Helpers.SmallHelpers.instance" требуется ссылка на объект"
Ошибка при компиляции общего кода "CS0120" "Для нестатического поля, метода или свойства "Helpers.SmallHelpers.project" требуется ссылка на объект"
Гугл не помогает.
 

Raids

Client
Регистрация
12.09.2017
Сообщения
41
Благодарностей
19
Баллы
8
Разобрался, в общем коде должно быть:
Код:
namespace Helpers
{
    public class SmallHelpers
    {
        public SmallHelpers(Instance Instance, IZennoPosterProjectModel Project){
            instance = Instance;
            project = Project;
        }
       
        public IZennoPosterProjectModel project;
       
        public Instance instance;
       
        public void FindHtmlElementByXPathAndClick(string strXpath, int intNumberMath,int intTimeoutInSec, int intSizeOfTipe)
        {
            Tab Tab1 = instance.ActiveTab;
            for (int i=0;i<intTimeoutInSec;i++){
                if(!Tab1.FindElementByXPath(strXpath, intNumberMath).IsVoid) break;
                Thread.Sleep(1000);
            }
            if (Tab1.FindElementByXPath(strXpath, intNumberMath).IsVoid){
                project.SendErrorToLog(String.Format("элемент не найден за {0} секунд",intTimeoutInSec), true);
                throw new Exception("error элемент не найден");
            }
            Tab1.FullEmulationMouseMoveAboveHtmlElement(Tab1.FindElementByXPath(strXpath, intNumberMath), intSizeOfTipe);
            Tab1.FullEmulationMouseMoveToHtmlElement(Tab1.FindElementByXPath(strXpath, intNumberMath));
            Tab1.FullEmulationMouseClick("left", "klick");
        }
    }
}
Вызов из кубика проекта:
Код:
Helpers.SmallHelpers heElement = new Helpers.SmallHelpers(instance, project);
heElement.FindHtmlElementByXPathAndClick("//input[@id='login']", 0, 10,30);
 
  • Спасибо
Реакции: Fantozzzio

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)