
Мне нужно извлечь xpath для числа 152. Созданный мной xpath извлекает текст после 152, который является «Тестовым», но исключает число 152. Мне нужно получить этот счет.
Я использую ниже xpath:
//div\[@class='filter_filter__5H_fi'\]/h1
Не уверен, как это получить.






Согласно HTML:

оба текста 152 и Контрольная работа находятся в пределах их соответствующих текстовые узлы.
Чтобы получить текст 152, вы можете использовать любой из следующих стратегии поиска:
Используя Джава, cssселектор и firstChild:
WebElement = driver.findElement(By.cssSelector("div.filter_filter__5H_fi > h1"));
System.out.println(((JavaScriptExecutor)driver).executeScript("return arguments[0].firstChild.textContent;", element).toString());
Используя питон, xpath и firstChild:
parent_element = driver.find_element(By.XPATH, "//div[@class='filter_filter__5H_fi']/h1")
print(driver.execute_script('return arguments[0].firstChild.textContent;', parent_element).strip())
Я пытался использовать "//div[@class='filter_filter__5H_fi']/h1/text()[1]", но выдает ошибку: "Результатом этого xpath является Object.text, он должен быть элементом".
Я тоже этого не предлагал. Просто скопируйте строки кода и дайте мне знать о результате.
Спасибо. Я попытался запустить первый код, но он по-прежнему возвращает только второй элемент «Test».
Плохо, была опечатка, сейчас исправил. Сообщите мне статус.
Это сработало !!! большое спасибо ! Можно ли этого добиться только с помощью исполнителя javascript? Разве у нас нет прямого xpath для этого? Дай мне знать.
@NileshAmbestha Вы можете сделать это с помощью css/xpath, но определенно это будет сложно. Использование исполнитель javascript — идеальный и самый простой подход в случае текстовых узлов.
Отметьте язык привязки, пожалуйста. Также
"152"является текстовым узлом, вы не можете анализировать.text()[1]в селене.