Selenium 无法提取文本

Selenium cannot extract text

我正在尝试从此页面中提取一些文本

特别是我想提取标签之间的文本。我正在使用 Selenium 和以下代码,但即使识别了对象,文本也是一个空字符串。下面是我使用的代码:

testo = driver.find_element_by_xpath('/html/body/span/pre[1]').text

您认为这可能是什么问题?

<pre> 标签内的文本在

因此,要提取所需的文本,您必须:

  • 诱导 WebDriverWait 所需的 帧可用并切换到它

  • 诱导 所需的 元素可点击

  • 您可以使用以下任一项:

    • 使用CSS_SELECTOR:

      WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe#mainFrame")))
      print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "span.dettaglio_atto_testo"))).get_attribute("innerHTML"))
      
    • 使用 XPATH:

      WebDriverWait(driver, 20).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@id='mainFrame']")))
      print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//span[@class='dettaglio_atto_testo']/pre"))).text)
      
  • 注意:您必须添加以下导入:

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

首先,你应该切换到iframe。然后你可以使用.getText()方法。

如果它不起作用你可以试试这个:.getAttribute("innerText")