Selenium Python:如何在innerHTML变量中查找HTML元素?
在指定元素范围内查找子元素文本内容
你不需要先获取innerHTML再处理,直接在已定位到的result元素(WebElement对象)范围内查找子元素即可,这样就不会全局搜索页面:
方法一:使用相对XPATH
from selenium.webdriver.common.by import By newresults = driver.find_elements(By.XPATH, "//*[@class='card is-category-product']") for result in newresults: # 用.//开头的相对路径,限定在当前result元素内查找 title_el = result.find_element(By.XPATH, ".//h3[@class='mb-0']") title_text = title_el.text print(title_text) # 输出:TITLE OF CARD
方法二:使用CSS选择器(更简洁)
from selenium.webdriver.common.by import By newresults = driver.find_elements(By.XPATH, "//*[@class='card is-category-product']") for result in newresults: title_el = result.find_element(By.CSS_SELECTOR, "h3.mb-0") title_text = title_el.text print(title_text)
关键说明
driver.find_element()是全局搜索整个页面,而result.find_element()是在当前result元素的上下文内查找子元素- 不需要通过
get_attribute('innerHTML')把元素转成字符串,直接操作WebElement对象更高效、更可靠
内容的提问来源于stack exchange,提问作者buzz
相关产品推荐
相关产品推荐

