Не получается получить текст
-
Пытаюсь получить весь текст ссылки
Но по такому xpath://a[@class='navigateLink']
сохраняет только:
"linklabonni.com"
А по такому:
//a[@class='navigateLink']/@href
сохраняет пустое значение. Как исправить?
Вот весь элемент:
-
@senerg В следующий раз выкладывайте html код текстом, перепечатывать со скриншота ни кому не хочется.
//a[@class='navigatelink']/@href
-
@fox said in Не получается получить текст:
//a[@class='navigatelink']/@href
Не понял вас. Этот вариант не находит элемент: navigatelink в коде нет, ксть только navigateLink.
Вот код:<a class="navigateLink" href="https://labonni.com/collections/mens-watch/products/ultra-thin-luxury-blue-stainless-steel-quartz-date-watch" rel="nofollow"><div class="_39 _50 _5b _6d _6e _h _z7 _4q _j" style="border-radius: 4px;"><div class="_5k _h _z7 _4q _j"><svg class="_u0 _3c _u1 _45" height="14" width="14" viewBox="0 0 24 24" aria-label="link" role="img"><title>link</title><path d="M4.9283,1 C3.6273,1 2.5713,2.054 2.5713,3.357 C2.5713,4.66 3.6273,5.714 4.9283,5.714 L14.9523,5.714 L1.6893,18.976 C0.7703,19.896 0.7703,21.389 1.6893,22.31 C2.1503,22.771 2.7533,23 3.3573,23 C3.9603,23 4.5633,22.771 5.0243,22.31 L18.2853,9.047 L18.2853,19.071 C18.2853,20.374 19.3413,21.429 20.6433,21.429 C21.9443,21.429 23.0003,20.374 23.0003,19.071 L23.0003,1 L4.9283,1 Z"></path></svg></div><div class="_49 _5j _68 _h _z7 _4q" style="height: 18px;"><div class="_w7 _0 _1 _2 _w9 _3c _d _b _6 _c" title="labonni.com">labonni.com</div></div></div></a>
-
@senerg магия...
-
@senerg said in Не получается получить текст:
@fox said in Не получается получить текст:
//a[@class='navigatelink']/@href
Не понял вас. Этот вариант не находит элемент: navigatelink в коде нет, ксть только navigateLink.
Вот код:<a class="navigateLink" href="https://labonni.com/collections/mens-watch/products/ultra-thin-luxury-blue-stainless-steel-quartz-date-watch" rel="nofollow"><div class="_39 _50 _5b _6d _6e _h _z7 _4q _j" style="border-radius: 4px;"><div class="_5k _h _z7 _4q _j"><svg class="_u0 _3c _u1 _45" height="14" width="14" viewBox="0 0 24 24" aria-label="link" role="img"><title>link</title><path d="M4.9283,1 C3.6273,1 2.5713,2.054 2.5713,3.357 C2.5713,4.66 3.6273,5.714 4.9283,5.714 L14.9523,5.714 L1.6893,18.976 C0.7703,19.896 0.7703,21.389 1.6893,22.31 C2.1503,22.771 2.7533,23 3.3573,23 C3.9603,23 4.5633,22.771 5.0243,22.31 L18.2853,9.047 L18.2853,19.071 C18.2853,20.374 19.3413,21.429 20.6433,21.429 C21.9443,21.429 23.0003,20.374 23.0003,19.071 L23.0003,1 L4.9283,1 Z"></path></svg></div><div class="_49 _5j _68 _h _z7 _4q" style="height: 18px;"><div class="_w7 _0 _1 _2 _w9 _3c _d _b _6 _c" title="labonni.com">labonni.com</div></div></div></a>
По этому html коду у меня всё правильно находит:
Вот тестовый скрипт
-
-
@senerg Код страницы не всегда соответствует коду который Вы видите в консоли, тк его могу менять js скрипты
-
@usertrue said in Не получается получить текст:
Код страницы не всегда соответствует коду который Вы видите в консоли, тк его могу менять js скрипты
Согласен. Но сам код, который я выложил выше, я скопировал из встроенного в бас браузера "Изучить на странице".
-
@senerg надо копировать из переменной "Код страницы".
-
@uraabk said in Не получается получить текст:
надо копировать из переменной "Код страницы".
Я говорю лишь о том, что в консоли браузера код этого элемента был также как и в сохраненном коде из "Код страницы". Но браузерное действие получить текст почему-то не сработало.
-
Почему все таки из браузера не работает, так и должно быть?
-
@senerg said in Не получается получить текст:
Почему все таки из браузера не работает, так и должно быть?
Потому что алгоритм действий разный. Данное Xpath выражение
//a[@class='navigateLink']/@href
возвращает конкретный класс /@href. Действие "xpath получить текст" отличается от "xpath получить xml" только добавлением к выражению xpath функцию
text()
по этому для этого выражения без разницы какое действие использовать.
А действие "получить текст" получает именно текст со страницы по селектору. Данный селектор ведёт к ссылке, но текста в ней нет, по этому и возвращать нечего.