使用 Selenium 从 Web 元素列表中获取 src 值

Get the src value from a list of webelements with Selenium

您好,正在尝试改编此视频中的解决方案

#scroller 100 fois pour reveler le plus d'image ( comment etre sur qu'on est à la fin ?)
n_scrolls = 100
for i in range(1, n_scrolls):
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    time.sleep(5)
    #recupère toutes les balises img puis leurs attribut src (je ne comprend pa bien cette façon d'assigner les elements)
    images = driver.find_elements_by_tag_name('img')
    print(images)
    images = [images.get_attribute('src') for img in images]

但输出是:

[<selenium.webdriver.remote.webelement.WebElement (session="50f35cc8388f3b59df4042bcc09c7079", element="4a4b2838-67d6-4787-a168-9e25e948a21a")>, <selenium.webdriver.remote.webelement.WebElement (session="50f35cc8388f3b59df4042bcc09c7079", element="7e3ae8f5-160a-4da6-b3a7-2be10bad8f3f")>, <selenium.webdriver.remote.webelement.WebElement (session="50f35cc8388f3b59df4042bcc09c7079", element="8c45c421-3f25-4498-85a2-565506835984")>, <selenium.webdriver.remote.webelement.WebElement (session="50f35cc8388f3b59df4042bcc09c7079", element="5ef69be7-13d7-41f1-9ec8-d8ac6e843fdd")>, <selenium.webdriver.remote.webelement.WebElement (session="50f35cc8388f3b59df4042bcc09c7079", element="626ae474-bccc-40c3-ac60-5b5f021b7bf0")>, <selenium.webdriver.remote.webelement.WebElement (session="50f35cc8388f3b59df4042bcc09c7079", element="ea0b589d-8e90-470a-ad59-a661f8d52b31")>

是否可以获取 src 属性而不是 img 标签元素?

我可以找到你犯的错误。

而不是这个

images = [images.get_attribute('src') for img in images]

应该是

images = [img.get_attribute('src') for img in images]

因为您正在迭代列表。

现在打印列表,您将获得所有 src 个值。

print(images)

因为 images<img> 元素的列表,同时一起迭代 within the for loop you need to extract the src attribute from each individual img and also may like to avoid editing the same and create a different 。如此有效,您的代码行将是:

images = driver.find_elements_by_tag_name('img')
print(images)
image_src_list = [img.get_attribute('src') for img in images]
print(image_src_list)