Как добавить переменную в xpath

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

guloc

Client
Регистрация
12.09.2016
Сообщения
153
Реакции
151
Баллы
43
Всем привет не могу понять как добавить переменную в xpatch выражение.
К примеру есть выражение //li[3]//div[1]//div[1]
Вместо 3 нужно подставить переменную
Подскажите как это реализовать?
Вывел 3 в строку
string rrr = project.Variables["cat_1"].Value;
m.click("//li[rrr]//div[1]//div[1]");
Код отрабатывает но ни чего не происходит.
 
Так
C#:
Развернуть Свернуть Копировать
string rrr = project.Variables["cat_1"].Value;
m.click("//li["+rrr+"]//div[1]//div[1]");
или так
C#:
Развернуть Свернуть Копировать
string rrr = project.Variables["cat_1"].Value;
string xpath = String.Format("//li[{0}]//div[1]//div[1]", rrr);
m.click(xpath);
 
  • Оценить
Реакции: Koqpe и guloc
Подскажите, в чем ошибка в моем аналогичном примере.
Вариант 1. Код срабатывает успешно, клик не происходит.
C#:
Развернуть Свернуть Копировать
string rrr = project.Variables["counter"].Value;
var x = instance.ActiveTab.FindElementByXPath(".//*[@id='table-combinations-list']/tbody/tr[+rrr+]/td[7]/div/div/a",0);
x.RiseEvent("click", "full");
Вариант 2. Ошибка. "The name 'm' does not exist in the current context".
C#:
Развернуть Свернуть Копировать
string rrr = project.Variables["counter"].Value;
string xpath = String.Format(".//*[@id='table-combinations-list']/tbody/tr[{0}]/td[7]/div/div/a", rrr);
m.click(xpath);
 
Попробуйте так:
C#:
Развернуть Свернуть Копировать
string rrr = project.Variables["counter"].Value;
var x = instance.ActiveTab.FindElementByXPath(".//*[@id='table-combinations-list']/tbody/tr[" + rrr + "]/td[7]/div/div/a",0);
x.RiseEvent("click", "full");
 
  • Оценить
Реакции: Agent
Попробуйте так:
C#:
Развернуть Свернуть Копировать
string rrr = project.Variables["counter"].Value;
var x = instance.ActiveTab.FindElementByXPath(".//*[@id='table-combinations-list']/tbody/tr[" + rrr + "]/td[7]/div/div/a",0);
x.RiseEvent("click", "full");
Спасибо, работает! Но есть один ньюанс. Код успешно отрабатывает так же и при отсутствии на странице значения из переменной (но не кликает, естественно). Как в неуспешную ветку вывести?
 
C#:
Развернуть Свернуть Копировать
string rrr = project.Variables["counter"].Value;
var x = instance.ActiveTab.FindElementByXPath(".//*[@id='table-combinations-list']/tbody/tr[" + rrr + "]/td[7]/div/div/a",0);
if (x.IsVoid)
{
    throw new Exception("Элемент не найден");
}
x.RiseEvent("click", "full");
 
  • Оценить
Реакции: Agent
Спасибо огромное! )
 

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