2018 年给自己定的目标:学会python语言,能够用python+selenium实现自动化。
说说自己的学习过程吧。
1. 去网上找了廖雪峰老师的python基础课程,跟着里面内容学,然后认真完成本个章节的作业,但是因为是断断续续的学,又很少用,所以很多的知识忘的差不多。
2. 毅然决定要系统的去学习一下。当初51cto刚才推出了自动化的课程,毫不犹豫的买了。决定不能像之前那样。于是定了小目标:每天至少都要抽出一个小时来学习。
学习过程如下:
认真的做好老师的笔记(到现在工作中记不起来的还是去翻这些笔记),多敲代码,特别是老师上课讲的,不要认为自己都会了,就懒得动手哦。在学习视频过程中,我会先听老师讲,把每个知识点理解了做好比较。然后暂停在去把老师讲解的用代码敲出来,不懂的在往回看,这样子加深印象。碰到代码出错的地方,要先看报错信息。然后找到哪行出错。不要一出错就找别人,要自己先根据错误信息来找到问题,如果感觉自己的思路没有错的,而又不知道错在哪里的时候,可以代码调试功能,看下代码怎么走的,每个变量的值是怎么样 。很多时候这样子就可以解决了。搞不定在去查资料,最好在问老师。分析错误也是一个很好的学习过程。
3. 工作:花了三个月时间学习完课程。扎实基础,面试了几家自动化,顺利找到一家比较满意的也算是对这段时间努力学习的肯定把。刚开始学习课程自动化的部分的时候,一直觉得selenium很简单,只要记住那用的方法就好了。然后在实际工作中还是很多问题,记录下比较难忘的一些问题。
1. 滚动条的问题,对应那种内嵌div的滚动条如何实现滚动。
1.1 、js =document.getElementByID(ID).scrollTop= 10000
Driver.execute_script(js)
1.2 、driver.execute_sctript(arguments[0].srcollInToView(true),element)
1.3 通过模拟键盘的操作,Keys.DOWN
2. 显示更多的问题,需要移动鼠标显示才可以点击的。当初写的时候一直定位不到元素,后面网上找的资料说要找到元素,然后在js强制点击。也行不通。后面直接通过js找到这些更多的集合,然后循环变量去点击就可以了。
3. 解析xml包,一直继续错误,后面发现这些用户的包不规范,带有&会解析报错。于是先读取这个xml文件,然后把&字符替换为空字符,最近在解析问题解决。
4. 写excel文件,解析xml文件后,要把解析的内容写入到excel中.但是解析出来的内容带有底层的字符\x01b等,导致无法写入到excel中,直接改成写csv文件,问题解决。但是写csv的时候,写入中文会乱码。默认非utf-8编码。需要打开csv文件之后,需要编码方式。Import codes
With open(csv,’w’) as f:
f.write(codecs.BOM_UTF8.decode)
然后在写入
5. 由于网络问题等,尽量少用sleep线程等待。多用隐式等待,并且把这个隐式等待根据需要重新封装。
6. 对应相同页面结构,很多id命名方式基本一样。最好用公共的定位元素的方式。比如 div[id^=”griew”][id$=“Table”]这样子在不同页面相同结构的模块时候定位元素的方式也可以共用。
实际在项目过程中还是碰到很多问题,这里就一一记录。因为这个项目要求做把用户的包的内容和 开发把包解析入库展示在页面内容比较。刚开始刚拿到的时候,一直认为不可能实现。但是最后经过自己的一一分析,还是完成了。这也是自己努力之后的肯定吧。2019年通过在工作的不断沉淀和学习,自己会变得更好。
转载于:https://blog.51cto.com/6384240/2343585