我不明白为什么当我肯定使用正确的 Xpath
时,我试图从中提取文本的列表返回空白。这是我的代码:
driver = webdriver.Firefox()
driver.get("https://www.omegawatches.com/watch-omega-specialities-first-omega-wrist-chronograph-51652483004001")
betweenLugs = driver.find_elements(By.XPATH, "/html/body/div[2]/main/div[3]/div/div/div[2]/div/div[2]/div[3]/div/ul/li[1]")])
print(betweenLugs.text)
这应该获取第一个列表项和度量
Between lugs: 20 mm
我也尝试过其他方法,但是 Xpath
没有接受它的事实告诉我出了点问题,不管我怎么做,我都做不到提取列表中的文本。有谁知道我做错了什么?这是我第一次遇到这个问题。
最佳答案
xpath
错误。它在 /div[2]
中失败,它不匹配任何内容。这是您不应使用绝对路径的示例。
该节有id
属性,使用它
betweenLugs = driver.find_elements(By.XPATH, "//*[@id='product-info-data-5bea7fa7406d7']/ul/li[1]")[0]
您可能还想添加一些等待加载
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
betweenLugs = WebDriverWait(driver, 10).until(expected_conditions.visibility_of_element_located((By.XPATH, "//*[@id='product-info-data-5bea7fa7406d7']/ul/li[1]")))
关于python - 使用 Selenium 从没有 ID 或类的列表中抓取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53280886/