Как найти или извлечь текст в файле html, используя селен в python? - PullRequest
0 голосов
/ 28 февраля 2020

Как найти или извлечь текст в файле HTML, используя Selenium в python. Текст, который я пытаюсь получить, не является элементом.

<div class="datagrid row"> ==$0
 <h2 class="bottom-border block">Accepted Shipment</h2>
 <table>
  <tbody>
   <tr>
    <td>
     <input type="hidden" id="looseAcceptedPieces" value="56"> == $0
      " 56 pcs."

    <!--Modified by A-7558 for ICRD-244765 starts--> == $0
    <input type="hidden" id="acceptedWt" value> == $0
     "952 kg"

Как мне найти или получить этот текст в <input>, то есть 56 шт. и 952 кг возможно, они не являются элементами.

Ответы [ 2 ]

1 голос
/ 28 февраля 2020

Вы можете получить значения, используя get_attribute("value") метод

piece = driver.find_element_by_id('looseAcceptedPieces')
val = piece.get_attribute("value")

И

weight = driver.find_element_by_id('acceptedWt')
val2 = weight.get_attribute("value")
0 голосов
/ 28 февраля 2020

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

  • Для извлечения 56 шт. :

    print(driver.execute_script('return arguments[0].childNodes[2].textContent;', WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//h2[text()='Accepted Shipment']//following::table[1]/tbody/tr/td")))).strip())
    
  • Для извлечения 952 кг :

    print(driver.execute_script('return arguments[0].lastChild.textContent;', WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//h2[text()='Accepted Shipment']//following::table[1]/tbody/tr/td")))).strip())
    
  • Примечание : необходимо добавить следующие импорты:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    

Ссылка

Соответствующее обсуждение можно найти в:

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