在使用seleniumpython读取表(td)中的文本后,不会打印任何内容

2024-10-01 07:27:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图打印表格单元格的文本,但没有打印任何内容。它正在识别元素,但似乎无法定位文本。在

HTML如下所示:

<tr style="font-weight: 600;">
  <td>
      "
    Available Balance
                                       "
  </td>
  <td id="testBalance" class="text-right ng-binding" style="font-weight:   600;">

                                                         664,265.314
  </td>                                                        

我试图通过运行以下命令读取(并打印)“664256.314”的值:

^{pr2}$

它定位元素,但没有任何内容被打印。有人知道为什么会这样吗?在


Tags: 定位文本id元素内容stylehtmltr
2条回答

我认为这只是一个时间问题-余额尚未设置/更新时,你检索它的价值。添加Explicit Wait以等待文本出现:

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

class wait_for_any_text(object):
    def __init__(self, locator, text_):
        self.locator = locator
        self.text = text_

    def __call__(self, driver):
        try:
            element_text = EC._find_element(driver, self.locator).text
            return element_text.strip()
        except StaleElementReferenceException:
            return False

wait = WebDriverWait(driver, 10)
balance = wait.until(wait_for_any_text((By.ID, "testBalance"))) 

print(balance.text)

(感谢伦考)

印刷品(Balance.get_属性(“文本内容”)

相关问题 更多 >