前言2013年即将结束,不知读者在这一年中都收获了那些。
在这一年的最后一天班,我怀着激动的心情来写这本电子书的前言,在这本电子书的整理过程中,虽然舍弃了很多享受生活的时间,但从中我也收获了很多。
自从开始从事软件测试工作开始,我就深深的喜欢上了这个职业。
对我来说软件测试不单单是一份为了赚钱的工作,它同样也是我生活的一部分,我从中找到了自我的价值。
从开始在博客园写博客时,自我的价值开始被放大,我只多了一点分享精神。
从开始从事软件工作时就知道selenium这个自动化工具,网上找来资料学习,学会了用seleniumIDE录制脚本,学会了简单搭建java+seleniumRC的环境,写一个简单的自动化脚本。
后来,换了城市换了工作,一直于忙于工作和其它技术的学习,中间间隔了一年多没有再接触selenium。
直到2013年年初换了新工作后工作稍微轻松,业余时间开始学习python语言,然后就喜欢上了这门语言,由于所测试的是web产品,所以,就考虑通过python+selenium将产品自动化起来。
关于python+selenium的资料除了官方的一份API并不多,我们更容易找到的是java+selenium的资料。
对我来说学习的过程也比较缓慢,后来有幸认识了MarkRabbit,他在python+selenium方面有着比较丰富的实践经验。
webdriverAPI对种元素的定位和操作有着不少知识点,我每学会使用一个知识点整理一篇博客。
后来,积累了十几篇博客出来。
为了便于阅读我就整理成了一份PDF上传到了CSDN上面。
在MarkRabbit的一路指点下,我又开始学习pyhonunittest单元测试框架,通过python脚本批量执行测试用例等,然后整理出来第二版的内容。
在此过程中得到了不少同学的反馈,自己的自动化测试水平在不断的学习实践中得到了长足的进步。
后来,开始对脚本做参数化,引入HTMLTestRunner测试报告以及对测试结构调整。
整理出了第三版。
MarkRabbit趁周末休息的时间向我展示他们目前的python+selenium测试框架,我非常兴奋,同时也觉得这个技术非常有用,于是决定整理一本完整书出来,市面上关于selenium的书大多翻译官方文档,对selenium的讲解也泛泛之谈,并没有真正通过编程的方式来帮助读者真正的去实施自动化。
之前一位人民邮电出版社的编辑曾联系过我,并向我发送了一份编书的规范,当时并没有约稿。
这对我来说是一次新尝试,我想自己真能写出来再说。
有了这个想法之后,我每天像打了鸡血一样活在兴奋当中,坐车和睡觉前也在思考书中的技术点。
后来,乙醇告诉我编辑成书比较麻烦,不断的修改也是非常头痛的事情,而我没有精力反复做这些,由于自身水平的局限,我的更多精力是在技术点学习上。
后来,改变了想法以电子书的形式展现给大家,这样我的编写过程随意了许多,我要做就是简单易懂告诉这是怎么回事,如何去实现。
2025/8/22 19:32:06 6.14MB Selenium2
1
智能小车循迹走8字是一项常见的机器人竞赛项目,它要求小车能够在设定的路径上自动行驶,形成“8”字形的轨迹。
这个过程涉及到了单片机控制、传感器技术、电机驱动以及算法设计等多个方面的知识。
下面将对这些知识点进行详细说明。
1.**单片机基础**:单片机是整个智能小车的核心,负责接收传感器信号、处理数据并控制电机运转。
这里使用的单片机可能是Arduino、STM32等常见开发平台,它们具有低功耗、高性能的特点,适合于实时控制系统。
2.**传感器技术**:智能小车通常使用颜色传感器或红外线传感器来检测路径。
颜色传感器通过识别赛道的颜色差异来确定行驶方向,红外线传感器则通过检测前方障碍物的距离辅助定位。
在“8”字走法中,传感器需要能够准确识别赛道边界,以确保小车不会偏离路线。
3.**电机驱动**:小车通常采用直流电机或者步进电机,通过电机驱动电路来控制电机的速度和方向。
电机控制器(如L298N)连接单片机,根据指令调整电机的转速和转向,使得小车能够按照预设路径行进。
4.**PID控制算法**:为了使小车能稳定跟踪路径,通常会采用PID(比例-积分-微分)控制算法。
PID算法可以实时调整电机的输出,以减小小车实际位置与目标位置的偏差,实现精准的路径跟随。
5.**轨迹识别与路径规划**:在“8”字走法中,需要预先定义好小车的行驶轨迹,这可能涉及到图像处理技术,通过对赛道的数字化表示,转化为小车可以理解和执行的指令序列。
6.**编程与调试**:编写程序实现上述功能是关键步骤。
代码需要包含初始化设置、传感器读取、PID计算、电机控制等模块。
同时,通过串口通信或LCD屏幕显示状态信息,以便于调试和优化。
7.**硬件组装与调参**:除了软件部分,硬件的组装和参数调整也至关重要。
包括传感器的安装位置、电机的扭矩和速度设置、小车的整体重量分配等,都会影响到小车的行走性能。
总结来说,智能小车循迹走8字是一个综合性的项目,它融合了单片机控制、传感器技术、电机驱动、控制算法、路径规划以及硬件设计等多个领域知识。
通过这样的实践项目,可以提升动手能力和解决问题的能力,对于学习和掌握嵌入式系统开发有着重要的意义。
2025/8/22 15:41:42 24KB
1
升降压电路simulink仿真,升降压电路的matlab仿真,模型参数已经调节好了,直接打开就就能用
2025/8/22 9:14:14 16KB 升降压仿真
1
这个是我们在平常很常用的吧,以前我在用div圆角的时候,特别特别的痛苦,不管是用CSS来画圆角,还是用图片来画圆角都不那么容易,但是现在好了,在CSS3中,直接只需要如下面饿代码,就能做出美轮美奂的圆角效果了~~~实例效果图:就是让一个div能够产生阴影效果。
代码如下:需要注意的是,它有4个参数:第一个参数:水平偏移的位置,它有正数或者负数。
如果是正数的话,那么表示边框的右(right)边产生阴影;
否则如果是负数的话,那么它的左边(left)框产生阴影效果。
第二个参数:垂直偏移的位置。
它也有正数或者负数。
如果是正数的话,那么表示下(bottom)边框有阴影;
否则如果是负数的话,那么它的上(to
2025/8/22 6:52:11 497KB CSS3必须要知道的10个顶级命令
1
小程序调用微信支付,后台Java打包参数,生成签名等具体流程。
直接用,具体代码都已封装好
2025/8/21 22:56:41 12KB 微信支付
1
【泰和安6816调试软件】是专为泰和安6816消防控制设备设计的一款专业调试工具,它旨在帮助工程师和技术人员高效、准确地进行设备配置和故障排查。
这款软件集成了丰富的功能,能够实现对消防系统的全方位监控和管理,确保设备在关键时刻能够正常运行,为消防安全提供强有力的技术支持。
调试器,作为软件开发和维护过程中的关键工具,通常用于检查程序的执行流程、变量状态以及查找和修复错误。
泰和安6816调试软件就是这样一个针对消防控制系统的专业调试器,它具有以下主要特点和功能:1.**配置功能**:软件能够帮助用户对消防控制室的硬件设备进行详细配置,包括设备参数设定、联动规则设置等,确保系统按照预设的消防规范和标准运行。
2.**故障诊断**:通过实时监测系统状态,软件可以快速定位并报告任何异常,帮助技术人员迅速识别和解决故障,减少因设备问题导致的安全隐患。
3.**图形监控**:TX6816消防控制室图形监控系统配置软件提供直观的图形界面,能够清晰地展示消防系统的布局和运行情况,使用户能更直观地了解系统的运行状态。
4.**数据记录与分析**:软件能够记录系统运行的历史数据,便于后期分析和优化系统性能。
同时,这些数据也可以用于事故后的调查和复盘,提高预防和应对火灾的能力。
5.**报警管理**:在发生火警或其他紧急情况时,软件会立即触发报警,并指导操作人员采取相应措施,同时记录报警事件,以便后续的处理和评估。
6.**兼容性与扩展性**:泰和安6816调试软件可能支持与其他消防设备或系统的集成,以实现整个消防网络的协同工作,提高系统的整体效能。
7.**培训与教程**:为了方便用户学习和掌握软件的使用,通常会提供详尽的操作指南和教程,帮助新用户快速上手,提升工作效率。
泰和安6816调试软件作为一款专业的消防控制设备调试工具,不仅简化了设备的调试和维护过程,还提升了系统的可靠性和安全性。
通过其强大的功能,使用者能够更加高效地管理和维护消防控制系统,为人们的生命财产安全提供有力保障。
在日常工作中,熟悉并掌握这款软件的使用,对于从事消防行业的技术人员来说,至关重要。
2025/8/21 19:39:10 23.39MB
1
一、二维卷积层(用于处理图像数据)1.二维互相关(cross-correlation)运算的输入是一个二维输入数组和一个二维核(kernel)数组,输出也是一个二维数组,其中核数组通常称为卷积核或过滤器(filter)。
卷积核的尺寸通常小于输入数组,卷积核在输入数组上滑动,在每个位置上,卷积核与该位置处的输入子数组按元素相乘并求和,得到输出数组中相应位置的元素。
2.二维卷积层二维卷积层将输入和卷积核做互相关运算,并加上一个标量偏置来得到输出。
卷积层的模型参数包括卷积核和标量偏置。
3.互相关运算与卷积运算卷积层得名于卷积运算,但卷积层中用到的并非卷积运算而是互相关运算。
我们将核数组上
2025/8/20 18:17:09 47KB 二维 卷积 卷积神经网络
1
本文档介绍了Hi3518EV20X和Hi3516CV200芯片的特性、逻辑结构,详细描述各个模块的功能、工作方式、相关寄存器定义,用图表的方式给出了接口时序关系和相关参数,并详细描述了芯片的管脚定义和用途以及芯片的性能参数和封装尺寸。
2025/8/20 18:51:03 24.48MB 海思
1
ISO14229-1-2020标准是关于道路车辆统一诊断服务(UDS)的应用层部分,正式名称为“道路车辆—统一诊断服务(UDS)—第1部分:应用层”。
该标准是由国际标准化组织(ISO)发布的第三版,出版日期为2020年2月。
该标准为道路车辆的诊断系统提供了一系列标准化的接口和服务,旨在提高不同制造商间车辆诊断系统的互操作性。
该标准涉及的车辆范围包括乘用车、轻型商用车、重型商用车、公共汽车、拖拉机以及非道路移动机械等。
它主要规范了车辆的电子控制单元(ECU)与诊断工具之间的通信协议。
ECU通常负责车辆的发动机、变速箱、制动系统、转向系统、悬挂系统等关键部件的控制与管理。
ISO14229-1-2020标准定义了统一诊断服务(UDS)应用层的参数和功能,它详细描述了如何通过诊断接口与车辆进行通信,并对诊断服务、会话管理、安全要求等方面做出了详细规定。
这些规定涵盖了车辆故障诊断、数据读取和清除、编程控制单元、远程信息处理等多种诊断服务。
此标准的制定旨在解决车辆制造商开发和实现诊断服务时面临的兼容性问题。
通过应用层协议的统一,诊断工具能够更容易地与不同品牌和型号的车辆进行通信,这样可以提高诊断的效率,简化维护工作,并降低车主维修的成本。
此外,它也方便了车辆诊断数据的共享和标准化处理,促进了相关行业技术的快速发展。
在实施方面,该标准强调了制造商必须遵守协议中定义的各项服务和通信要求。
它还规定了在车辆诊断过程中对通信数据进行加密的要求,以确保数据传输的安全性。
这种安全性要求对于现代汽车来说尤为重要,因为随着车辆越来越多地接入网络并依赖软件控制,它们更容易受到外部攻击或恶意软件的威胁。
ISO14229-1-2020标准为制造商、维修人员、诊断设备制造商、信息技术供应商以及任何涉及车辆诊断与服务的实体提供了一个清晰的规范,有助于推动行业朝着更加开放和互操作的方向发展。
此外,该标准的实施有助于车辆制造商遵守相关的法律法规要求,提升车辆的整体安全和可靠性。
ISO14229-1-2020标准的版权受到法律保护,使用标准内容需获得授权。
对标准文档的复制、分发或利用必须符合ISO的规定,未经许可的使用是禁止的。
标准的发布机构提供了一个明确的联系方式,以便在需要的情况下请求版权许可。
2025/8/20 15:21:22 25.43MB
1
录音程序,可在DEC++或vc++6.0编译环境下成功运行部分代码:intmain(){creat_file();//新建文件,原文件数据被删除RecordWave();//录音函数simplest_pcm16le_to_wave("NocturneNo2inEflat_44.1k_s16le.pcm",1,44100,"output_nocture.wav");//将二进制录音信息从内存中提取,并生成wav文件测控1602DEVC++环境下控制台应用程序善解人意成员:王帅、赵永玻、侯雅茹3return0;}voidRecordWave(){intcount=waveInGetNumDevs();//检测录音设备printf("\n音频输入数量:%d\n",count);WAVEINCAPSwaveIncaps;MMRESULTmmResult=waveInGetDevCaps(0,&waveIncaps;,sizeof(WAVEINCAPS));printf("\n音频输入设备:%s\n",waveIncaps.szPname);if(MMSYSERR_NOERROR==mmResult){//HWAVEINphwi;WAVEFORMATEXpwfx;//录音格式指针WaveInitFormat(&pwfx;,//波形声音的格式,单声道双声道使用WAVE_FORMAT_PCM.当包含在WAVEFORMATEXTENSIBLE结构中时,使用WAVE_FORMAT_EXTENSIBLE1,//声道数量44100,//采样率16//采样位数);printf("\n正在打开音频输入设备");printf("\n采样参数:声道44.1kHz16bit\n");mmResult=waveInOpen(&phwi;,WAVE_MAPPER,&pwfx;,(DWORD)(MicCallback),NULL,CALLBACK_FUNCTION);//3if(MMSYSERR_NOERROR==mmResult){//WAVEHDRpwh1;charbuffer1[10240];pwh1.lpData=buffer1;pwh1.dwBufferLength=10240;pwh1.dwUser=1;pwh1.dwFlags=0;测控1602DEVC++环境下控制台应用程序善解人意成员:王帅、赵永玻、侯雅茹4mmResult=waveInPrepareHeader(phwi,&pwh1;,sizeof(WAVEHDR));//为波形输入设备准备缓冲区printf("\n准备缓冲区1");//WAVEHDRpwh2;charbuffer2[10240];pwh2.lpData=buffer2;pwh2.dwBufferLength=10240;pwh2.dwUser=2;pwh2.dwFlags=0;mmResult=waveInPrepareHeader(phwi,&pwh2;,sizeof(WAVEHDR));//为波形输入设备准备缓冲区printf("\n准备缓冲区2\n");//WAVEHDRpwh3;charbuffer3[10240];pwh3.lpData=buffer3;pwh3.dwBufferLength=10240;pwh3.dwUser=3;pwh3.dwFlags=0;mmResult=waveInPrepareHeader(phwi,&pwh3;,sizeof(WAVEHDR));//为波形输入设备准备缓冲区printf("准备缓冲区3\n");if(MMSYSERR_NOERROR==mmResult){mmResult=waveInAddBuffer(phwi,&pwh1;,sizeof(WAVEHDR));//给输入设备增加一个缓存printf("\n将缓冲区1加入音频输入设备");mmResult=waveInAddBuffer(phwi,&pwh2;,sizeof(WAVEHDR));//给输入设备增加一个缓存printf("\n将缓冲区2加入音频输入设备\n");mmResult=waveInAddBuffer(phwi,&pwh3;,sizeof(WAVEHDR));//给输入
2025/8/20 13:54:12 332KB C语言 录音程序
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡