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

  • Автор темы Автор темы Raids
  • Дата начала Дата начала

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" требуется ссылка на объект"

Гугл не помогает.
 
Разобрался, в общем коде должно быть:
Код:
Развернуть Свернуть Копировать
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

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