Как использовать переменную в xPath?

udder

Client
Регистрация
28.03.2017
Сообщения
596
Благодарностей
118
Баллы
43
Составил рабочий xPath

var x = instance.ActiveTab.FindElementByXPath("//div[@class='ovf i-text-content editable '][contains(.,'my.page')]",0); x.RiseEvent("click","full");


На место выделенного текста, необходимо подставлять значение из переменной.

Сделал так:
var x = instance.ActiveTab.FindElementByXPath("//div[@class='ovf i-text-content editable '][contains(.,'project.Variables["Domain"].Value')]",0); x.RiseEvent("click","full");

В логе ошибки:
Тип Время Сообщение
18:54:08 Компиляция кода Ошибка в действии "CS1026" "ожидалась )". [Строка: 0; Cтолбец: 125]
18:54:08 Компиляция кода Ошибка в действии "CS1002" "ожидалась ;". [Строка: 0; Cтолбец: 131]
18:54:08 Компиляция кода Ошибка в действии "CS1002" "ожидалась ;". [Строка: 0; Cтолбец: 143]
18:54:08 Компиляция кода Ошибка в действии "CS1525" "Недопустимый терм "," в выражении". [Строка: 0; Cтолбец: 143]
18:54:08 Компиляция кода Ошибка в действии "CS1002" "ожидалась ;". [Строка: 0; Cтолбец: 144]
18:54:08 Компиляция кода Ошибка в действии "CS1002" "ожидалась ;". [Строка: 0; Cтолбец: 145]
18:54:08 Компиляция кода Ошибка в действии "CS1525" "Недопустимый терм ")" в выражении". [Строка: 0; Cтолбец: 145]
 

dio-dev

Client
Регистрация
05.11.2018
Сообщения
149
Благодарностей
54
Баллы
28
var x = instance.ActiveTab.FindElementByXPath("//div[@class='ovf i-text-content editable '][contains(.,'" + project.Variables["Domain"].Value + "')]",0); x.RiseEvent("click","full");
Попробуй так.
 
  • Спасибо
Реакции: borzd и udder

udder

Client
Регистрация
28.03.2017
Сообщения
596
Благодарностей
118
Баллы
43
var x = instance.ActiveTab.FindElementByXPath("//div[@class='ovf i-text-content editable '][contains(.,'" + project.Variables["Domain"].Value + "')]",0); x.RiseEvent("click","full");
Попробуй так.
Код:
var x = instance.ActiveTab.FindElementByXPath("//div[@class='ovf i-text-content  editable '][contains(.,'" + project.Variables["DomainEscape"].Value + "')]",0); x.RiseEvent("click","full");
Выполнилось без ошибки, но клик не произошел
 
Последнее редактирование:

dio-dev

Client
Регистрация
05.11.2018
Сообщения
149
Благодарностей
54
Баллы
28
Значит Xpath неправилный
 

udder

Client
Регистрация
28.03.2017
Сообщения
596
Благодарностей
118
Баллы
43
var x = instance.ActiveTab.FindElementByXPath("//div[@class='ovf i-text-content editable '][contains(.,'" + project.Variables["Domain"].Value + "')]",0); x.RiseEvent("click","full");
Попробуй так.
Здравствуйте, а почему вы предлагает отступы использовать перед + и после?

Я так работаю..

"+project.Variables["Domain"].Value+"
 
  • Спасибо
Реакции: leha52rus

orka13

Client
Регистрация
07.05.2015
Сообщения
2 165
Благодарностей
2 167
Баллы
113
Здравствуйте, а почему вы предлагает отступы использовать перед + и после?

Я так работаю..

"+project.Variables["Domain"].Value+"
они не играют роли, в данном случае фактически в коде игнорируются. просто для глаз приятнее с ними.
 
  • Спасибо
Реакции: dio-dev и udder

serg32

Client
Регистрация
27.02.2015
Сообщения
545
Благодарностей
15
Баллы
18
они не играют роли, в данном случае фактически в коде игнорируются. просто для глаз приятнее с ними.
а можете подсказать как положить результат парса xpath в переменную сразу а не в список? Пробую, у меня результат выполнения получается такой - "ZennoLab.CommandCenter.HtmlElementCollection"

Хотя сам код выглядит вот так:
Код:
var x = instance.ActiveTab.FindElementsByXPath("//*[contains(@id,'5468']])]");

return x;
В кубике только этот C# код. Далее планировал получать данные в Х переменную и далее с ней работать
 

orka13

Client
Регистрация
07.05.2015
Сообщения
2 165
Благодарностей
2 167
Баллы
113
А что вы хотите в этой переменой получить в итоге? Если внутренний текст найденных элементов (InnerText), то это его сначала отдельно для каждого элемента надо получить, а потом уже выводить в список или переменную. Изучите теорию работы с C# + xPath по этой теме лучше:
ZennoPoster + xPath на примере Яндекс.Маркета
 
  • Спасибо
Реакции: serg32

serg32

Client
Регистрация
27.02.2015
Сообщения
545
Благодарностей
15
Баллы
18
А что вы хотите в этой переменой получить в итоге? Если внутренний текст найденных элементов (InnerText), то это его сначала отдельно для каждого элемента надо получить, а потом уже выводить в список или переменную. Изучите теорию работы с C# + xPath по этой теме лучше:
ZennoPoster + xPath на примере Яндекс.Маркета
в идеале моей задачи мне нужен клик в конце по нужному элементу. Просто я не могу пока понять как вообще xPath работать. Регулярки я понимаю, как парсить тоже, а вот тут пока туплю чет, не могу понять инструмент этот. Я думал он вернет кусок из DOM, а дальше в этом куске еще искать и так далее
 

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