首页 > 解决方案 > 无法获取 div 的文本

问题描述

<div _ngcontent-tpr-c123="" class="panel panel--bordered">hac-action: 1: /wae:wae/wae-ha:ha-config/ha-data-sync</div>
old_config_xpath = "//div[contains(text(),'hac-action')]"
element_value = wae_base_params[self.driver_key].find_element_by_xpath(old_config_xpath).text

element_value 为空。

注意:上面的 HTML 代码不是网页上可见的内容

标签: pythonseleniumdomxpath

解决方案


任何元素的定位方式都是在 DOM 上。

确保元素位于 DOM 上的方法是使用WebDriverWaitexpected_conditions:

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


wait = WebDriverWait(browser, 10)

element_value = wait.until(EC.visibility_of_element_located((By.XPATH, "//div[contains(text(),'hac-action')]]"))).text

推荐阅读