在 selenium python 中获取元素子 ID

Getting an elements children IDs in selenium python

我在从我抓取的元素中获取 div id 时遇到了一些问题。 假设这是我通过 class name "products"

提取的区域中的网站代码

这些列出的 id 的子项中也有 id 我不想要那些。也不是整页上的那些。

<div class = "products">
   <div> 
        <div> id= "123">...</div>
        <div> id= "456">...</div>
        <div> id= "789">...</div>
        <div> id= "012">...</div>
   </div>
  

这是我的 selenium/python 代码。我尝试了几种解决方案,但一直找不到答案。

driver.get("https://genericwebsite.org")

scrape = driver.find_element(By.CLASS_NAME, 'products')


# Here are some solutions I've tried to no avail


ids = scrape.find_elements(By.XPATH, "./child::*").get_attribute('id')



# This one pulls ALL IDS from the children's children as well as maybe the full sites.  

ids = scrape.find_elements(By.XPATH,'//*[@id]' )

我已经尝试了很多迭代,但似乎无法找到解决方案。 我想要的结果如下:

ids = ["123", "456", "789", "012]

试试这个代码:

ids = []
scrape = driver.find_elements(by=By.XPATH, '//div[@class=\'products\']/div/div')

for item in scrape:
    ids.append(item.get_attribute('id'))

print(ids)

使用此代码,您输入上面提到的每个 div 并使用 get_attribute 方法获取它们各自的 ID,并将其附加到 ids list