C# и Xpath

Dozer009

Client
Регистрация
26.11.2012
Сообщения
147
Благодарностей
4
Баллы
18
Доброе время суток!
хочу написать сниппет, чтобы кликал по случайному элементу новостей
C#:
var elNews= tab.FindElementByXPath("//*[@id='grid']/div[2]/div[2]/div[3]/div[1]/ul/li[3]", 0);
как сделать, чтобы последний элемент li[3] можно было вводить рандомно от 1 до 15 или в C# не все так просто, как бы это сделал бы на php "/li[".mt_rand(1, 15). "]" ?? или городить список 1- 15 после через переменную вносить в tab.FindElementByXPath
 

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 135
Благодарностей
488
Баллы
83
Попробуйте:

C#:
int rnd = new Random().Next(15);

var elNews= tab.FindElementByXPath($"//*[@id='grid']/div[2]/div[2]/div[3]/div[1]/ul/li[{rnd}]", 0);
 
  • Спасибо
Реакции: Sho и Dozer009

Dozer009

Client
Регистрация
26.11.2012
Сообщения
147
Благодарностей
4
Баллы
18
Попробуйте:

C#:
int rnd = new Random().Next(15);

var elNews= tab.FindElementByXPath($"//*[@id='grid']/div[2]/div[2]/div[3]/div[1]/ul/li[{rnd}]", 0);
Респект, все работает , теперь будем знать, много где пригодится данная фича!!
 
  • Спасибо
Реакции: n0n3mi1y

n0n3mi1y

Client
Регистрация
08.03.2017
Сообщения
1 135
Благодарностей
488
Баллы
83
Респект, все работает , теперь будем знать, много где пригодится данная фича!!
Над xpath'ом вам стоит поработать, чуть-чуть сменится верстка и придется снова его менять. Попробуйте найти уникальный параметр
 

Dozer009

Client
Регистрация
26.11.2012
Сообщения
147
Благодарностей
4
Баллы
18
Над xpath'ом вам стоит поработать, чуть-чуть сменится верстка и придется снова его менять. Попробуйте найти уникальный параметр
да в курсе , вот изучаю данную тему, понимаю что надо более универсальнее
 

Gunjubasik

Client
Регистрация
30.05.2019
Сообщения
3 445
Благодарностей
1 288
Баллы
113

Dimon

Client
Регистрация
17.03.2010
Сообщения
55
Благодарностей
8
Баллы
8
доброго времени. подскажите как в xpath подставить значение из переменной проекта.
вот такой код у меня, все норм ищет
C#:
var elButton = instance.ActiveTab.FindElementByXPath("//a[contains(@class, 'StyledUserLinkName') and @href='/@MYACC']/following-sibling::p[contains(@class, 'PCommentSubContent')]/div[contains(@class, 'DivLikeWrapper')]",0);
вместо MYACC мне надо переменную accComment из проекта подставить. пытался такой код вместо MYACC впихнуть
C#:
Convert.ToInt32(project.Variables['accComment'].Value)
ошибки какие то валятся, типа Входная строка имела неверный формат. это вообще реально сделать, или я невпихуемое впихнуть пытаюсь? в яп 0, копировать вставить, не более.
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 694
Баллы
113
доброго времени. подскажите как в xpath подставить значение из переменной проекта.
вот такой код у меня, все норм ищет
C#:
var elButton = instance.ActiveTab.FindElementByXPath("//a[contains(@class, 'StyledUserLinkName') and @href='/@MYACC']/following-sibling::p[contains(@class, 'PCommentSubContent')]/div[contains(@class, 'DivLikeWrapper')]",0);
вместо MYACC мне надо переменную accComment из проекта подставить. пытался такой код вместо MYACC впихнуть
C#:
Convert.ToInt32(project.Variables['accComment'].Value)
ошибки какие то валятся, типа Входная строка имела неверный формат. это вообще реально сделать, или я невпихуемое впихнуть пытаюсь? в яп 0, копировать вставить, не более.
C#:
var elButton = instance.ActiveTab.FindElementByXPath($"//a[contains(@class, 'StyledUserLinkName') and @href='/@{project.Variables["accComment"].Value}']/following-sibling::p[contains(@class, 'PCommentSubContent')]/div[contains(@class, 'DivLikeWrapper')]",0);
 
  • Спасибо
Реакции: Dimon

Dimon

Client
Регистрация
17.03.2010
Сообщения
55
Благодарностей
8
Баллы
8
C#:
var elButton = instance.ActiveTab.FindElementByXPath($"//a[contains(@class, 'StyledUserLinkName') and @href='/@{project.Variables["accComment"].Value}']/following-sibling::p[contains(@class, 'PCommentSubContent')]/div[contains(@class, 'DivLikeWrapper')]",0);
спасибо, добрый человек, выручил
 

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