Я хочу получить только «текст ...» без использования .split () или нарезки индекса
HTML:
<a class="call_recipe" href="/recipes/2913"> " text ... " <strong> something~ </strong> </a>
HTML Снимок:
Чтобы напечатать текст ... , вы должны вызвать WebDriverWait для visibility_of_element_located(), и вы можете использовать любую из следующих стратегий поиска :
visibility_of_element_located()
Использование CSS_SELECTOR, childNodes и strip():
CSS_SELECTOR
strip()
print(driver.execute_script('return arguments[0].firstChild.textContent;', WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "a.call_recipe[href^='/recipes']")))).strip())
Использование XPATH, get_attribute() и splitlines():
XPATH
get_attribute()
splitlines()
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//a[@class='call_recipe' and starts-with(@href, '/recipes')]"))).get_attribute("innerHTML").splitlines()[1])
Примечание : вам необходимо добавить следующие импорты:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
Вы можете найти пару соответствующих подробных обсуждений в:
вы можете использовать
"find_element_by_class_name("some_text").getText()"
или для лучшего соответствия текста вы можете использовать
"driver.find_element_by_xpath("..").text"
Надеюсь, это будет полезно
driver.find_element_by_class_name("call_recipe").text
Думаю, это то, что вам нужно.
Как получить текст с помощью веб-драйвера selenium в python