首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Selenium python get_attribute()返回图像的实际数据,而不是链接

Selenium是一个用于自动化浏览器操作的工具,通过Selenium可以模拟用户在浏览器中的各种操作,例如点击、输入等。在使用Selenium进行web测试时,经常需要获取元素的属性值,其中一个常用的方法是使用get_attribute()函数来获取元素的属性值。

在使用Selenium的Python语言绑定进行开发时,可以使用get_attribute()函数来获取元素的属性值,常见的属性包括href、src、value等。然而,对于图像元素,使用get_attribute()函数获取的是图像元素的链接地址,而不是实际的图像数据。

如果您需要获取图像的实际数据,可以使用其他方法来实现。一种常见的方法是通过下载图像文件并读取其二进制数据。以下是一个示例代码:

代码语言:txt
复制
import requests
from selenium import webdriver

# 初始化WebDriver
driver = webdriver.Chrome()

# 打开网页
driver.get("https://example.com")

# 定位图像元素
image_element = driver.find_element_by_xpath("//img[@id='image_id']")

# 获取图像元素的src属性
image_src = image_element.get_attribute("src")

# 下载图像文件并获取实际数据
response = requests.get(image_src)
image_data = response.content

# 打印图像数据
print(image_data)

# 关闭WebDriver
driver.quit()

上述代码首先使用Selenium打开一个网页,然后定位到图像元素并获取其src属性。接着使用requests库发送GET请求并获取图像文件的实际数据,最后打印图像数据。

这是一个获取图像实际数据的示例方法,具体的实现方式可能因项目需求和网站架构而异。如果您需要更多的图像处理功能,可以考虑使用图像处理库如Pillow或OpenCV等。

对于Selenium的应用场景和腾讯云相关产品,这里根据问答内容没有明确的关联,无法提供相关信息。如果您有其他相关问题,欢迎继续提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

前端开发实际上操作的是数据,而不是DOM

但在这之前,你会写大量的。。。垃圾代码。并且当你面对一个在某一个具体页面上有N多交互,且不跳页,且这些交互还是操作不同接口返回的数据时,也许你就蒙了。...因为这类网页没有一个确定的结构,它随着不同权限的人,操作不同的数据,处于不同的状态,而在这期间,它的DOM结构是不断变化的。...昨天的文章里我说过,你在京东买东西,你点击的是input,但实际上通过input标签,你触发了ajax事件,调用了updata方法,修改了你的payCart对象,即购物车对象里的val值,这是什么?...这在网页视图上反映的就是你的购物车里,多了一件商品。这个操作实质上操作的是数据,是你的payCart数据。 让我们先从需求出发,先把业务所用到的数据都整理,归纳出来。...形成各种对象,对象其实就是数据的集合嘛。那数据是什么?它是一种模型。例如电商网站,它里面有各种数据,那对应的就会有各种模型。这种模型多了,就会抽像出规则。

1K80
  • web自动化之selenium的特殊用法汇总篇

    (2)组合键使用 (4)常用组合键 (5)常用功能键 2、Python-Selenium:如何通过click在新的标签页打开链接?...3、selenium 带有空格的class name且不唯一的元素定位 1、当前浏览器窗口截屏 2、生成网站长截图 3、特殊网页无法长截图,使用多图拼接技术 4、无头模式调整浏览器的实际窗口大小 web...该方法将首先尝试返回具有给定名称的属性的值。 如果具有该名称的属性不存在,则返回具有相同名称的属性的值。 如果没有这个名称的属性,则返回' None '。...href = post_list[i].get_attribute('href') # 在新的标签页打开链接 driver.execute_script(f'window.open...-----------------") 4、无头模式调整浏览器的实际窗口大小 在生成网站长截图部分,我们发现长截图的网页并不是实际我们最大化时候的样子,感觉像是平板端的PC展示页。

    2.5K30

    017:Opencv+Selenium模拟QQ邮箱滑块操作

    之前发了一个国航的滑块模拟操作,没有计算滑块到缺口的位置。 本篇则是用opencv+selenium来对QQ邮箱的滑块进行模拟测试。...QQ邮箱链接: https://mail.qq.com/ QQ邮箱这个登录机制,需要我们输入一个错误的账号或密码会有机会弹出滑块验证码,所以我下面就一直用错误的账号进行测试。...= 正常情况出现滑块后: 开始进行缺口位置识别: 我这里使用的方法,是通过selenium中的xpath把图片的src获取到,然后下载下来保存到本地。再通过opencv来进行图像缺口检测。...: 返回保存在本地的图片中0左标到缺口位置的距离:y 我们本地图片的宽是 680 像素 而QQ邮箱给的验证图的宽为 280 像素 那我们移动的距离是: y = y/(680/280) 但是在浏览器上面显示的滑块起始位置不是为...我们就可以使用selenium中的ActionChains来进行鼠标移动操作。

    1.2K20

    技术分享 | Selenium 测试用例编写

    Python版本 from selenium import webdriver Java版本 import org.openqa.selenium.By; import org.openqa.selenium.chrome.ChromeDriver...; 测试用例的流程 测试用例是为了实施测试从而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等。...三大核心要素为 :标题 、步骤 、预期结果 标题:是对测试用例的描述,标题应该清楚的表达测试用例的内容 步骤:对测试执行过程进行描述 预期结果:提供测试执行的预期结果,预期结果一般是根据需求得出,如果实际结果和预期结果一致则测试通过...Python版本 from selenium import webdriver # 测试的标题即 test_search def test_search(): driver = webdriver.Chrome...因为实际获取到的内容应该是百度一下而不是百度,所以断言错误。

    41730

    教你Selenium 测试用例编写

    Python版本 from selenium import webdriver 测试用例的流程 测试用例是为了实施测试从而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等...三大核心要素为 :标题 、步骤 、预期结果 标题:是对测试用例的描述,标题应该清楚的表达测试用例的内容 步骤:对测试执行过程进行描述 预期结果:提供测试执行的预期结果,预期结果一般是根据需求得出,如果实际结果和预期结果一致则测试通过...实战演练 首先是在代码的最上面导入了 Selenium 的包,其次是测试方法命名、测试步骤、断言。测试用例内容是要断言打开百度页面所展现的内容与所期望的值是否相等。...Python版本 from selenium import webdriver # 测试的标题即 test_search def test_search(): driver = webdriver.Chrome...因为实际获取到的内容应该是百度一下而不是百度,所以断言错误。

    51710

    网易云音乐歌曲下载

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。...本文链接:https://blog.csdn.net/weixin_40313634/article/details/96611824 爬取过程中的问题解决 环境 :Windows + Python...定位信息好着,就是获取不到元素 原因: selenium 打开网页后, 默认是在父级 Frame 里, 直接搜索是搜不到子 Frame 里的信息的。 需要切换 Frame。...就是页面元素过期,引用的元素过时,不再依附于当前页面,需要重新定位获取元素对象 find_elements 查找到的是 WebElement 类型的数组数据,含有元素在当前页面的地址信息,调用 click.../usr/bin/env python ''' 功能:访问网易云音乐网站,下载歌单里的所有免费歌曲 时间:2019/07/20 ''' from selenium import webdriver

    1.7K30

    Selenium 动态爬取51job招聘信息

    找到每个岗位详细的链接地址: ?...最后定位需要爬取的数据 岗位名,薪水,公司名,招聘信息,福利待遇,岗位职责,任职要求,上班地点,工作地点 这些数据,总之需要什么数据,就爬什么 需要打开岗位详细的链接,比如:https://jobs.51job.com...Item类  定义需要获取的数据 GetJobInfo类 主程序类 getBrowser方法     设置selenium使用chrome的无头模式,打开目标网站,返回browser对象 userInput... 返回 url:{} 数据失败\n错误代码:{}\n'.format(url, e))         else:             self.log.info(u'Python 返回 url:{...请根据实际情况,修改对应的爬虫规则。 本文参考链接: http://www.py3study.com/Article/details/id/344.html

    1.3K40

    源码 | Python爬虫之网易云音乐下载

    配置基础 Python Selenium(配置方法参照:Selenium配置) Chrome浏览器(其它的也可以,需要进行相应的修改) 分析 如果爬取过网易云的网站的小伙伴都应该知道网易云是有反爬取机制的...Python实现 该部分将对几个关键的函数进行介绍… 获取歌手信息 利用Selenium我们就不需要看对网页的请求了,直接可以从网页源码中提取相应的信息。...接下来就是解析单个tr标签的内容,获取歌曲名字和链接,可以发现两者在class=”txt”标签中,而且链接是href属性,名字是title属性,可以直接通过get_attribute()函数获取。...((title, href)) 下载歌词 网易云有个获取歌词的接口,链接为:http://music.163.com/api/song… 链接中的数字就是歌曲的id,所以我们拥有歌曲id后,可以直接从该链接下载歌词...,链接为:http://music.163.com/song/med… 链接中的数字为歌曲的id,可以直接根据歌曲的id来下载音频文件。

    2.5K20

    使用selenium定位获取标签对象并提取数据

    selenium提取数据 文章目录 selenium提取数据 知识点: 1. driver对象的常用属性和方法 知识点:了解 driver对象的常用属性和方法 2. driver对象定位标签元素获取标签对象的方法...Python网络爬虫基础–BeautifulSoup 知识点: 了解 driver对象的常用属性和方法 掌握 driver对象定位标签元素获取标签对象的方法 掌握 标签对象提取文本和属性值的方法 --...对象定位标签元素获取标签对象的方法 在selenium中可以通过多种方式来定位标签,返回标签元素对象 find_element_by_id (返回一个元素) find_element(...(根据链接包含的文本获取元素列表) find_element(s)_by_tag_name (根据标签名获取元素列表) find_element(s)_by_css_selector (根据...element.get_attribute("属性名") 通过定位获取的标签对象的get_attribute函数,传入属性名,来获取属性的值 ​ 代码实现,如下: from selenium import

    1.9K20

    python+selenium实现Web自动化

    一、前言 最近问我自动化的人确实有点多,个人突发奇想:想从0开始讲解python+selenium实现Web自动化测试,请关注博客持续更新!...二、话不多说,直接开干,开始搭建自动化测试环境 这里以前在【简书】写过一篇很详细的博文,零基础的小白都可以看懂,地址如下: python+selenium自动化测试环境搭建步骤(selenium环境搭建...') search_text.submit() time.sleep(3) (3) 其他常用的方法 size: 返回元素的尺寸。...text: 获取元素的文本。 get_attribute(name): 获得属性值。 is_displayed(): 设置该元素是否用户可见。...('cp').text print("返回元素的文本:%s" % text) attribute = browser.find_element_by_id('kw').get_attribute('type

    3.5K30

    Python爬虫案例:采集青创网批发商品数据(附代码)

    开发环境 Python 3.8 Pycharm 2021.2 模块使用 selenium >>> pip install selenium==3.141.0 (指定版本安装) time csv selenium...模拟人的行为去操作浏览器 正常爬虫 >>> requests Python代码模拟浏览器对于服务器发送请求 selenium >>> 用python代码 >>> 浏览器驱动 >>> 浏览器 selenium...你浏览器驱动文件和代码放在一起的 2. 浏览器驱动文件放在python安装目录下面 """ 78行代码报错原因: 1. 驱动路径 2....什么时候加载完 就继续运行下面的代码 # lis返回的是列表, 元素个数只有70个, 71取不到所以报错 # lis[0] 也报错 >>>> 你解析数据没有提取出来, 返回的 空列表...服务器没有给我们返回想要的数据 (反爬了) lis = driver.find_elements_by_css_selector('#productlist li') for li in

    61711

    测试开发面试题

    selenium的面试题 1、UI自动化的工作原理 脚本连接Webdriver驱动,Webdriver驱动直接驱动浏览器来模拟一些人的操作,如点击按钮,输入字符串等操作 2、selenium提供了两个类...(1100,size['height'])#设置宽,高 python面试题 1、python 的核心数据类型 数字(整型数int,浮点型数float,复数complex, 布尔型bool) 字符串 str...返回光标至行首(回车)。...3.6 以后 print(f'名字是{name},年龄是{age}') 8、给你一个数据混乱的列表,[72,33,88,12,14,39],不用python内部封装好的方法,自己用冒泡排序,重新将列表从小到大排序...: 位置形参 星号元组形参 命名关键字形参 双星号字典形参 10、python的作用域和变量名查找规则(顺序) python 的作用域 作用域也叫名字空间,是访问变量时查找变量名的范围空间 python

    1.2K10

    技术分享 | app自动化测试(Android)--App 控件交互

    获取 TEXT 属性返回元素的 text 的属性值,用法如下:Python 版本self.driver.find_element_by_xpath( '//*[@resource-id="com.xueqiu.android...\"]").\ getAttribute("text");获取 CLASS 属性返回元素的 class 的属性值,用法如下:Python 版本self.driver.find_element_by_xpath...\"]")\ .getAttribute("resource-id");获取 CONTENT-DESC 属性返回元素的 content-desc 的属性值,用法如下:Python 版本self.driver.find_element_by_xpath...,比如这个元素是否可见,是否被选中,是否可用等,下面介绍这些属性值的获取:python 版本get_attribute('clickable') # 是否可点击get_attribute('checked...与 Selenium 输出的 HTML 格式不一样,Appium 的 page_source 是 XML 格式。

    52400

    scrapy_selenium爬取Ajax、JSON、XML网页:豆瓣电影

    本文将为你介绍scrapy_selenium的基本原理和使用方法,并给出一个实际的案例。...scrapy_selenium的主要特点有: 它提供了一个SeleniumRequest类,可以让我们在scrapy中发送selenium请求,而不是普通的HTTP请求。...它提供了一个SeleniumMiddleware类,可以让我们在scrapy中处理selenium响应,而不是普通的HTML响应。...它提供了一个SeleniumSpider类,可以让我们在scrapy中使用selenium来编写爬虫逻辑,而不是普通的scrapy.Spider类。...我们可以发现,豆瓣电影的电影列表是通过Ajax异步加载的,而电影详情页是通过JSON格式返回的。我们的目标是爬取每部电影的名称、评分、简介和海报图片,并保存到本地。

    30130

    8.9 Selenium元素定位方式

    sleep(2) driver.find_element_by_id("su").click() sleep(3) driver.quit() link_text定位 link_text定位就是根据链接文字进行定位...XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。...极力推荐使用CSS 定位,而不是XPath来定位元素,原因是CSS 定位比XPath 定速度快,特别是在IE浏览器环境 前端开发人员就是用CSS Selector设置页面上每一个元素的样式,无论那个元素的位置有多复杂...sleep(3) driver.find_element_by_css_selector("#stb").click() sleep(3) driver.quit() ---- 元素操作方法 text 返回元素内容...clear()清除元素内容 send_keys() 传送元素值 click() 点击操作 submit()提交操作 get_attribute()获取元素的属性 代码实践 #注意调用的text没有()

    1.3K10
    领券