python 为什么xpath没有给出这样的元素异常?

vptzau2j  于 2023-02-07  发布在  Python
关注(0)|答案(1)|浏览(128)

我将使用xpath来抓取使用selenium的facebook视频的评论,但它给出了未找到元素的异常。
在这张图片中,<div>中有一个div,其中包含文本“Comments”,还有第二个<div>,其中包含<ul>,还有<li>列表,我想获取这些列表的文本。
代码试验:

from selenium.webdriver.common.by import By
comments = driver.find_element(by=By.XPATH, value='//div/h2[text()="Comments"]/div[2]/ul/li')

快照:

roejwanj

roejwanj1#

根据快照:

<ul>的祖先<div>不是h2[text()="Comments"]的后代,因此您看到exception of no element found
溶液
要打印 * 注解 *,必须将WebDriverWait导出为visibility_of_all_elements_located(),并且可以使用以下locator strategy

print([my_elem.text for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//div/h2[contains(., 'Comments')]//following-sibling::div[2]/ul//li")))])

注意:您必须添加以下导入:

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

相关问题