поиск элемента по xPath в zp7, как?

Oleg-KC

Client
Регистрация
17.02.2020
Сообщения
156
Благодарностей
53
Баллы
28
Уважаемые форумчане, подскажите, что делаю не так?
Тестирую 7-ку на тач события, по атрибутам элемент находится и свайп срабатывает, но вот по xPath почему то нет
Элемент находится внизу страницы. Эмуляция мобильного браузера настройках (хром, андроид, телефон).
C#:
// так не работает
instance.ActiveTab.Navigate("https://yandex.ru/", "");
instance.ActiveTab.WaitDownloading();
HtmlElement he = instance.ActiveTab.FindElementByXPath("/html/body/div[1]/div[1]/div[1517]/a[3]", 0);
instance.ActiveTab.Touch.SwipeIntoView(he);
// так работает
instance.ActiveTab.Navigate("https://yandex.ru/", "");
instance.ActiveTab.WaitDownloading();
HtmlElement he = instance.ActiveTab.FindElementByAttribute("a", "href", "https://yandex.ru/portal", "regexp", 0);
instance.ActiveTab.Touch.SwipeIntoView(he);
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 690
Баллы
113
так у вас xpath кривой. кто ж так составляет пути, одни номера в элементах. на следующей перезагрузки 100% работать не будет.
 

Oleg-KC

Client
Регистрация
17.02.2020
Сообщения
156
Благодарностей
53
Баллы
28
так у вас xpath кривой. кто ж так составляет пути, одни номера в элементах. на следующей перезагрузки 100% работать не будет.
xPath взят стандартным методом зенно "из коробки"
 

Oleg-KC

Client
Регистрация
17.02.2020
Сообщения
156
Благодарностей
53
Баллы
28
из конструктора
 

Вложения

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 690
Баллы
113
xPath взят стандартным методом зенно "из коробки"
никогда так не делайте. это не работает. особенно из коробки :-) просто сами составьте логически верный, который не будет зависеть от верстки. и проблем не будет.
 
  • Спасибо
Реакции: luk911

Oleg-KC

Client
Регистрация
17.02.2020
Сообщения
156
Благодарностей
53
Баллы
28
так у вас xpath кривой. кто ж так составляет пути, одни номера в элементах. на следующей перезагрузки 100% работать не будет.
Благодарю, понял, осознал. больше так не буду
 

Rooter85

Client
Регистрация
04.07.2015
Сообщения
244
Благодарностей
63
Баллы
28
instance.ActiveTab.FindElementByXPath("/html/body/div[1]/div[1]/div[1517]/a[3]", 0);
Выше совет конечно правильный, но даже и этот путь мог сработать. У вас не хватает еще одного "/" в начале пути.
А нет, все правильно. Путь строится от html. Никогда так не делал поэтому обратил внимание на один слеш.
 

Oleg-KC

Client
Регистрация
17.02.2020
Сообщения
156
Благодарностей
53
Баллы
28
Выше совет конечно правильный, но даже и этот путь мог сработать. У вас не хватает еще одного "/" в начале пути.
А нет, все правильно. Путь строится от html. Никогда так не делал поэтому обратил внимание на один слеш.
пробовал и с // не работает
 

Oleg-KC

Client
Регистрация
17.02.2020
Сообщения
156
Благодарностей
53
Баллы
28
Верно было сказано про цифры, построил такой заработало вроде
C#:
string xPath = "/html[starts-with(@class,'i-ua_js_yes')]/body[@class='i-bem']/div[@class='body__wrapper']/div[starts-with(@class,'content')]/div[@class='mfooter']/a[starts-with(@class,'button')]";
instance.ActiveTab.Navigate("https://yandex.ru/", "");
instance.ActiveTab.WaitDownloading();
HtmlElement he = instance.ActiveTab.FindElementByXPath(xPath, 0);
instance.ActiveTab.Touch.SwipeIntoView(he);
 

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113
Поидеи там должен работать такой xpath
CSS:
//a[contains(@href,"yandex.ru/portal")]
но я на главной вообще не нахожу такую ссылку.
 
  • Спасибо
Реакции: Oleg-KC

Oleg-KC

Client
Регистрация
17.02.2020
Сообщения
156
Благодарностей
53
Баллы
28
Поидеи там должен работать такой xpath
CSS:
//a[contains(@href,"yandex.ru/portal")]
но я на главной вообще не нахожу такую ссылку.
Вы через мобильный браузер? Если десктоп то ее там нет на десктопе (это часть ссылки, а не полная ссылка) по атрибутам в мобиле находит как "0" совпадение
 

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113
Вы через мобильный браузер? Если десктоп то ее там нет на десктопе (это часть ссылки, а не полная ссылка) по атрибутам в мобиле находит как "0" совпадение
ну конструкцию я показал, и если ссылка такая есть то найдет, либо обрежте.
 

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113
Ваше сообщение было что так работает
C#:
HtmlElement he = instance.ActiveTab.FindElementByAttribute("a", "href", "https://yandex.ru/portal", "regexp", 0);
 
Последнее редактирование:

Oleg-KC

Client
Регистрация
17.02.2020
Сообщения
156
Благодарностей
53
Баллы
28
Посмотреть вложение 58691

Ваше сообщение было что так работает
C#:
HtmlElement he = instance.ActiveTab.FindElementByAttribute("a", "href", "https://yandex.ru/portal", "regexp", 0);
Вы через мобильный браузер?
Я ж писал, что это все через мобилку.
Поидеи там должен работать такой xpath
CSS:
//a[contains(@href,"yandex.ru/portal")]
За пример спасибо! Попробую
 

Oleg-KC

Client
Регистрация
17.02.2020
Сообщения
156
Благодарностей
53
Баллы
28

Вложения

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