Как получить частичный текст из текстового узла с помощью Selenium и Python - PullRequest
1 голос
/ 18 июня 2020

Я хочу получить только «текст ...» без использования .split () или нарезки индекса

HTML:

<a class="call_recipe" href="/recipes/2913">
      " text ... "
      <strong> something~ </strong>
    </a>

HTML Снимок:

![

Ответы [ 3 ]

1 голос
/ 18 июня 2020

Чтобы напечатать текст ... , вы должны вызвать WebDriverWait для visibility_of_element_located(), и вы можете использовать любую из следующих стратегий поиска :

  • Использование CSS_SELECTOR, childNodes и 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():

    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
    

Ссылки

Вы можете найти пару соответствующих подробных обсуждений в:

0 голосов
/ 18 июня 2020

вы можете использовать

 "find_element_by_class_name("some_text").getText()"

или для лучшего соответствия текста вы можете использовать

"driver.find_element_by_xpath("..").text"

Надеюсь, это будет полезно

0 голосов
/ 18 июня 2020
driver.find_element_by_class_name("call_recipe").text

Думаю, это то, что вам нужно.

Как получить текст с помощью веб-драйвера selenium в python

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...