xPath первый раз находит, потом нет

Kurator

Client
Регистрация
10.05.2016
Сообщения
84
Реакции
6
Баллы
8
Подскажите почему, когда я выделяю текст на странице и кликаю - поиск по xPath. Атрибут innerhtml в нем само прописывает значение - Prove your not a Robot - Solve the Captcha First. Добавляю в проект- находит. Как только страница перезагружается - не находит. Использовал все 3 варианта:
//*[@id="ozRIq"]/div[@class='box-body']/center/small[1]
//*[@id="ozRIq"]/div[1]/center/small[1]
/html/body/div[8]/div[5]/div[1]/section[2]/div[2]/div[9]/div[1]/div[1]/div[1]/div[2]/div[1]/center[1]/form/div[1]/center/small[1]
Номера формы и документа было рано 0. Я менял на -1. Ничего не помогает.
Все эти значения зенно сам вписывает в первый раз.
 
очень похоже на то что эта часть в пути динамическая и меняется при обновлении странице. Можете обновить страницу и сравнить с первым вариантом.
Если есть динамические атрибуты, то через них составлять путь xpath, соответственно, нельзя
 
  • Спасибо
Реакции: Kurator
так не будет работать. xpath надо всегда составлять руками. еще ни разу не видел работающего автоматически созданного xpath :)
 
  • Спасибо
Реакции: mr.green и Kurator
Подскажите почему, когда я выделяю текст на странице и кликаю - поиск по xPath. Атрибут innerhtml в нем само прописывает значение - Prove your not a Robot - Solve the Captcha First. Добавляю в проект- находит. Как только страница перезагружается - не находит. Использовал все 3 варианта:
//*[@id="ozRIq"]/div[@class='box-body']/center/small[1]
//*[@id="ozRIq"]/div[1]/center/small[1]
/html/body/div[8]/div[5]/div[1]/section[2]/div[2]/div[9]/div[1]/div[1]/div[1]/div[2]/div[1]/center[1]/form/div[1]/center/small[1]
Номера формы и документа было рано 0. Я менял на -1. Ничего не помогает.
Все эти значения зенно сам вписывает в первый раз.
Зенка показывает просто пример, а не рабочий вариант, поэтому вам нужно самому научится писать дорогу оптимальную, а в вашем случае цепляется много лишнего, в соответсвии с которым, после обновы страницы, работать не будет.
 
  • Спасибо
Реакции: Kurator
очень похоже на то что эта часть в пути динамическая и меняется при обновлении странице. Можете обновить страницу и сравнить с первым вариантом.
Если есть динамические атрибуты, то через них составлять путь xpath, соответственно, нельзя
Да, действительно, id поменялся.(
До этого делал стандартным поиском - правая кнопка по тексту- Создать проверку по наличию выделенного текста. Но такой поиск работает не стабильно. Т.е. не находит периодически. Как быть, подскажите. Я так проверяю появилась ли hCaptcha на странице. Может есть какой-то другой способ? Если ставить просто кубик разгадывания hCaptcha, то он долго думает, если даже нет hCaptcha
 
Да, действительно, id поменялся.(
До этого делал стандартным поиском - правая кнопка по тексту- Создать проверку по наличию выделенного текста. Но такой поиск работает не стабильно. Т.е. не находит периодически. Как быть, подскажите. Я так проверяю появилась ли hCaptcha на странице. Может есть какой-то другой способ? Если ставить просто кубик разгадывания hCaptcha, то он долго думает, если даже нет hCaptcha
нужно просто составить правильный путь xPath... Путь, в котором не будет лишних, динамических элементов
 
  • Спасибо
Реакции: Kurator
Тоже хочу знать, почему этот способ хуже
выделение текста ? если про него речь, то там есть одна особенность, он может выдать положительный ответ даже если текст не виден. например где то прописан в скрипте, но еще не выведен, а проверка выдаст ложный сигнал. а если искать тот же текст по xpath , например //*[contains(text(),'ля-ля тополя')] , то в c# можно сделать проверку ширины и высоты найденного элемента и таким образом гарантированно узнать что такой текст есть и он виден. а если заморочится то можно даже проверить не перекрыт ли он другим элементом. вот и все отличие :)
 

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