Как прописать переменную в методе C#

PROforum

Client
Регистрация
17.08.2014
Сообщения
252
Благодарностей
19
Баллы
18
так работает:
Код:
instance.ActiveTab.FullEmulationMouseSetOptions(4);
instance.ActiveTab.FullEmulationMouseMove(190,304);
а ставлю так не работает
Код:
instance.ActiveTab.FullEmulationMouseSetOptions(project.Variables["test"].Value);
instance.ActiveTab.FullEmulationMouseMove(190,304);
Подскажите как правильно прописать первую строку, а также как засунуть переменные из проекта во вторую строку?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 443
Благодарностей
8 672
Баллы
113
так работает:
Код:
instance.ActiveTab.FullEmulationMouseSetOptions(4);
instance.ActiveTab.FullEmulationMouseMove(190,304);
а ставлю так не работает
Код:
instance.ActiveTab.FullEmulationMouseSetOptions(project.Variables["test"].Value);
instance.ActiveTab.FullEmulationMouseMove(190,304);
Подскажите как правильно прописать первую строку, а также как засунуть переменные из проекта во вторую строку?
переменную для использования в снипете как числовую, нужно сначала сконвертировать из строковой в числовую, т.к. в ЗП все переменные по умолчанию строковые..
Код:
var zzz = Convert.ToInt32(project.Variables["test"].Value);
instance.ActiveTab.FullEmulationMouseSetOptions(zzz);
instance.ActiveTab.FullEmulationMouseMove(190,304);
и еще проверьте переменную test, может там пустота..
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113
Подскажите как правильно прописать первую строку, а также как засунуть переменные из проекта во вторую строку?
C#:
int pause = int.Parse(project.Variables["var1"].Value);
int toX = int.Parse(project.Variables["var2"].Value);
int toY = int.Parse(project.Variables["var3"].Value);

instance.ActiveTab.FullEmulationMouseSetOptions(pause);
instance.ActiveTab.FullEmulationMouseMove(toX, toY);
 

PROforum

Client
Регистрация
17.08.2014
Сообщения
252
Благодарностей
19
Баллы
18
Подскажите нужно ли конвертировать переменную с проекта и как сюда прописать переменную с проекта
Код:
// Конструктор действий, тип RiseEvent
var zzz = Convert.ToInt32(project.Variables["silka"].Value);
HtmlElement he = instance.ActiveTab.GetDocumentByAddress("0").FindElementByAttribute("a", "href", "вот сюда надо вставить переменную с проекта", "regexp", 0);
В переменной лежит ссылка типа https://www.youtube.com/channel/UCU_nYjh0PHT
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113
Подскажите нужно ли конвертировать переменную с проекта и как сюда прописать переменную с проекта
C#:
var zzz = project.Variables["silka"].Value;
HtmlElement he = instance.ActiveTab.GetDocumentByAddress("0").FindElementByAttribute("a", "href", zzz, "regexp", 0);
 
  • Спасибо
Реакции: udder, samsonnn и PROforum

PROforum

Client
Регистрация
17.08.2014
Сообщения
252
Благодарностей
19
Баллы
18
Здравствуйте. В гугле надо нажать кнопку выбора аккаунта. Делаю по образцу как советовали в предыдущем посте
Образец:
Код:
var zzz = project.Variables["silka"].Value;
HtmlElement he = instance.ActiveTab.GetDocumentByAddress("0").FindElementByAttribute("a", "href", zzz, "regexp", 0);
Если ставлю так то работает
Код:
//Переходим на целевую страничку
Tab tab1 = instance.ActiveTab;

if (tab1.IsBusy)    tab1.WaitDownloading();
HtmlElement he = instance.ActiveTab.GetDocumentByAddress("0").FindElementByTag("form", 0).FindChildByAttribute("li", "innertext", "Маша\\ Серова\\ [email protected]", "regexp", 0);
if (he.IsVoid) return -1;

instance.ActiveTab.FullEmulationMouseMoveToHtmlElement(he); //мышка перемещается до нужного элемента
tab1.FullEmulationMouseClick("left", "click");
Но как только заменяю имя с почтой на переменную перестаёт работать, точнее кубик выполняется зелёная галочка на кубике появляется, но эмуляции движения и нажатия кнопки нет если можете подскажите что изменить?
Код:
//Переходим на целевую страничку
Tab tab1 = instance.ActiveTab;

if (tab1.IsBusy)    tab1.WaitDownloading();
var zzz = project.Variables["YouTube_name"].Value;
HtmlElement he = instance.ActiveTab.GetDocumentByAddress("0").FindElementByTag("form", 0).FindChildByAttribute("li", "innertext", zzz, "regexp", 0);
if (he.IsVoid) return -1;

instance.ActiveTab.FullEmulationMouseMoveToHtmlElement(he); //мышка перемещается до нужного элемента
tab1.FullEmulationMouseClick("left", "click");
PS в переменной значения точно есть.(Маша\\ Серова\\ [email protected])
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 443
Благодарностей
8 672
Баллы
113

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113
PS в переменной значения точно есть.(Маша\\ Серова\\ [email protected])
Скорее всего причина в двойных слэшах, замени их на одинарные.
Т.к. в первом случае регулярка была прописана явно, то слэши нужно было экранировать. Если же текст берется из переменной, то экранировать не нужно.
 

PROforum

Client
Регистрация
17.08.2014
Сообщения
252
Благодарностей
19
Баллы
18
пробовал так установить в переменной результата нет:
"Маша\\ Серова\\ [email protected]"

Так тоже не получается
Маша\ Серова\ [email protected]
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 100
Баллы
113

woober

Client
Регистрация
07.04.2015
Сообщения
211
Благодарностей
122
Баллы
43
Здравствуйте. В гугле надо нажать кнопку выбора аккаунта. Делаю по образцу как советовали в предыдущем посте
Образец:
Код:
var zzz = project.Variables["silka"].Value;
HtmlElement he = instance.ActiveTab.GetDocumentByAddress("0").FindElementByAttribute("a", "href", zzz, "regexp", 0);
Если ставлю так то работает
Код:
//Переходим на целевую страничку
Tab tab1 = instance.ActiveTab;

if (tab1.IsBusy)    tab1.WaitDownloading();
HtmlElement he = instance.ActiveTab.GetDocumentByAddress("0").FindElementByTag("form", 0).FindChildByAttribute("li", "innertext", "Маша\\ Серова\\ [email protected]", "regexp", 0);
if (he.IsVoid) return -1;

instance.ActiveTab.FullEmulationMouseMoveToHtmlElement(he); //мышка перемещается до нужного элемента
tab1.FullEmulationMouseClick("left", "click");
Но как только заменяю имя с почтой на переменную перестаёт работать, точнее кубик выполняется зелёная галочка на кубике появляется, но эмуляции движения и нажатия кнопки нет если можете подскажите что изменить?
Код:
//Переходим на целевую страничку
Tab tab1 = instance.ActiveTab;

if (tab1.IsBusy)    tab1.WaitDownloading();
var zzz = project.Variables["YouTube_name"].Value;
HtmlElement he = instance.ActiveTab.GetDocumentByAddress("0").FindElementByTag("form", 0).FindChildByAttribute("li", "innertext", zzz, "regexp", 0);
if (he.IsVoid) return -1;

instance.ActiveTab.FullEmulationMouseMoveToHtmlElement(he); //мышка перемещается до нужного элемента
tab1.FullEmulationMouseClick("left", "click");
PS в переменной значения точно есть.(Маша\\ Серова\\ [email protected])
Может быть не стоит так париться с экранированием пробелов, пусть это делается прямо в коде, итого переменная

project.Variables["YouTube_name"].Value = @"Маша Серова [email protected]"; // читаемо и просто
string zzz = project.Variables["YouTube_name"].Value; // использовать zzz тут в принципе вообще не нужно
HtmlElement he = instance.ActiveTab.GetDocumentByAddress("0").FindElementByTag("form", 0).FindChildByAttribute("li", "innertext", zzz.Replace(" ",@"\ "), "regexp", 0);
if (he.IsVoid) return -1;

И вообще разве обязательно по регулярке искать текст "Маша Серова [email protected]" ?
Может просто по тексту без всяких там \\ и т.д.?

project.Variables["YouTube_name"].Value = @"Маша Серова [email protected]"; // читаемо и просто
string zzz = project.Variables["YouTube_name"].Value;
HtmlElement he = instance.ActiveTab.GetDocumentByAddress("0").FindElementByTag("form", 0).FindChildByAttribute("li", "innertext", zzz, "text", 0);
if (he.IsVoid) return -1;
 

PROforum

Client
Регистрация
17.08.2014
Сообщения
252
Благодарностей
19
Баллы
18
я делаю так. С помощью конструктора действий создаю кубик "клик по элементу" потом конвертирую в С# и вырезаю часть кода. слеши нужны так как без них работать не будет
Код:
HtmlElement he = instance.ActiveTab.GetDocumentByAddress("0").FindElementByTag("form", 0).FindChildByAttribute("li", "innertext", "Маша\\ Серова\\ [email protected]", "regexp", 0);
if (he.IsVoid) return -1;
PS я не из код выпарсиваю Маша\\ Серова\\ [email protected]
 

Dodgy

Client
Регистрация
28.05.2010
Сообщения
107
Благодарностей
12
Баллы
18
Помогите пожалуйста с проблемой, делаю поиск и клик по элементу, помогите подставить переменную в код, никак не выходит...


Код:
var tab = instance.ActiveTab;

var zzz = Convert.ToInt32(project.Variables["order"].Value);

//Ищем элемент
var div = tab.FindElementByAttribute("div", "id", zzz, "text", 0);


//Наводим на него мышку
tab.FullEmulationMouseMoveToHtmlElement(div);

//Одинарный клик левой:
tab.FullEmulationMouseClick("left", "click");
Так не работает, хелпаните очень надо)
 

Dodgy

Client
Регистрация
28.05.2010
Сообщения
107
Благодарностей
12
Баллы
18
Не актуально
 

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