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

Raids

Client
Joined
Sep 12, 2017
Messages
41
Reaction score
19
Points
8
Вставляю в общий код

Code:
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");
        }
    }
}
Ругается

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

Raids

Client
Joined
Sep 12, 2017
Messages
41
Reaction score
19
Points
8
Разобрался, в общем коде должно быть:
Code:
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");
        }
    }
}
Вызов из кубика проекта:
Code:
Helpers.SmallHelpers heElement = new Helpers.SmallHelpers(instance, project);
heElement.FindHtmlElementByXPathAndClick("//input[@id='login']", 0, 10,30);
 
  • Thank you
Reactions: Fantozzzio

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)