【问题标题】:How can i get an attribute in a page using seleinum on python?如何在 python 上使用 selenium 获取页面中的属性?
【发布时间】:2021-10-19 10:22:16
【问题描述】:

我正在尝试获取一页元素源的内容

from selenium import web driver 
firefox = webdriver.Firefox()
firefox.get('some link right here')
linkimg = firefox.find_elements_by_xpath('/html/body/div[3]/div/div/img').get_attribute('src')

但是当我运行这段代码时,它显示:AttributeError: 'list' object has no attribute 'get_attribute'

我在 python 3.7 和 3.9 上试过

【问题讨论】:

    标签: python selenium-webdriver geckodriver


    【解决方案1】:

    .find_elements_by_xpath() 的输出始终是找到的元素的列表。调用.get_attribute() 对列表没有意义。相反,迭代列表并获取您的 src 属性。

    linkimg = firefox.find_elements_by_xpath('/html/body/div[3]/div/div/img')
    linkimg = [each_element.get_attribute('src') for each_element in linkimg]
    

    【讨论】:

    • 有效!谢谢,但是由于我仍在学习python,所以我没有完全了解您在最后一行中所做的事情,您能否更详细地解释一下?我知道 for 循环可以用这个缩进来写,而且这条线在做什么。
    • 搜索“inline for loops python”。我们基本上遍历列表的元素并在它们上调用.get_attribute。如果对您有用,您可以将答案标记为已接受的解决方案!
    猜你喜欢
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多