/selenium-document

a document with regard to selenium

Primary LanguagePython

我叫是河南郑州的一名高二学生,利用业余时间独立撰写了一份SELENIUM项目的中文文档,希望对你有帮助。

1.png

Q 为什么要撰写一份Selenium的中文文档?

A 其实刚开始,是打算写一个关于Selenim的专题,但后来写着写着,在不断的查阅资料中发现,网络上现有的中文文档大多介绍的很简单,一概而过,即便是较为知名的51testing.com的Selenium教程,也因为著于十年前,已经跟现在的测试框架具有较大的差异了。因此,我萌生了撰写一份完整的Selenium中文文档的想法。

Q 这份文档写了多久?

A 从中考结束的暑假就开始编写,期间因为学业的缘故中断过一次,到寒假又重新拾起笔来撰写,大概在高一下学期期末的时候完成。当时的文档还不太成熟,我想着再修修改改,期望做的更好一些,这就到了高二上学期结束后的暑假,终于修改到自认为这份文档比较成熟了,希望发布出去,为开源事业做一点贡献。

Q 写的时候遇到过质疑吗?

A 当然有,因为要编写文档,牺牲了很多自由时间, 很难把控学习和爱好之间的平衡,高一上学期期末的时候,成绩跌到全校一百名开外,那时候很难过,也被老师叫过去谈话过。

庆幸的是,我的父母从来没有因此责备过我,反而鼓励我继续下去,只是要把握好两者之间的平衡。同时感谢我的老师,尤其是耿明磊、张文霄老师,在我坚持不下去的时候,给予我鼓励。

本书读者对象

  • 测试自动化
  • Web开发者
  • Python开发工程师
  • 人工智能工程师
  • 爬虫开发工程师
  • 数据分析工程师
  • 系统运维工程师

本书内容及体系结构

第1章 从Selenium开始

本章从起初入手,帮助读者了解Selenium项目的框架和由来,以及如何选择自己的WebDriver。接着介绍了在Windows和Linux两种操作系统下的Selenium安装方式。

第2章 页面导航

本章对Selenium项目和浏览器交互的基本操作内容进行了介绍和串讲。本章介绍了如何通过Selenium项目实现启动浏览器,打开浏览器,浏览器窗口切换等一系列的常用的浏览器操作的自动化。为后面的学习奠定基础。

第3章 元素定位

在第三章中笔者将会引领读者领略了Selenium的八种元素定位方式。通过对本章与前两章的内容的学习,读者可以初步掌握并实现一个略有雏形的自动化程序的能力。

第4章 利器----PhantomJS

PhantomJS是一个独立的项目,可以实现绝大部分浏览器的功能。不同于其他的浏览器,PhantomJS只会在内存中运行,而不会显示任何界面。十分适合我们进行数据采集的时候使用。本章介绍了PhantomJS和Selenium搭配使用的方法。

第5章 实战part1——Python官网

本章是对前面所学的内容的一个综合整理运用。通过实战,帮助读者巩固已经学习过的知识,并且在实际操作中,锻炼读者的编程能力与思维。

第6章 实战part2——今日头条

以今日头条为例子,引入即将要学习的内容,本章主要讨论技术部分实现以及解决思路分析。目的在于帮助读者形成一个目录式的系统印象。

第7章 数据编解码、处理

在互联网中,难免要面对错综复杂的各种数据类型,这一章主要介绍以下内容:CSV、JSON、XML、BASE64、NLTK、HASH、Bloom Filter以及关系型数据库和非关系型数据库。

第8章 实战part3——猫眼电影

以猫眼电影为例子,详细讲解从了解客户需求到网站分析、处理的全套流程,并在分析中逐步引入代码的说明与实现。

第9章 实战part4——淘宝商品

在这一小节中,笔者以淘宝商品为例子,阐述如何应对复杂网站的页面数据采集,帮助诸位追赶较为新颖的实现方式,解决读者因难以下手而犹豫不决,无法直接应用的难题。

第10章 单元测试

解决单元测试是什么、为什么要写单元测试、应该怎么写单元测试这三个难题。帮助读者评估在自己的项目中是否要使用单元测试。

第11章 多线程

实现同步完成多项任务的功能,帮助读者提高程序的运行效率,解决时间。讨论线程、进程、线程切换、锁以及GIL等概念。

第12章 发送邮件

本章讨论程序反馈最低廉且合理的方式,通过实现自动化发送邮件,实现服务器(程序)无人值守情况下的报备以及记录

第13章 Selenium IDE

介绍了两个简单且方便的录制自动化脚本的工具,为读者提供一条功能化的测试道路,快捷生成自动化脚本。

第14章 Python拓展

这一章节讨论包括但不限于:Python2代码转换Python3代码,测试类型,通配符,字符串方法,异常层次结构,类,推导式等等扩展性内容。

第15章 GUI,图形化测试

讨论制作图形化界面的方法并且介绍经常使用的组件,帮助读者实现测试工具图形化以及了解底层实现的思路。

第16章 实战案例part5 知乎

着重讨论Selenium项目和传统方式的爬虫的结合,实现一种全新的,功能更加强大的数据采集爬虫。

第17章 实战案例part6 微博

对全书的内容的整合提升,帮助读者巩固已经学过的知识,构筑全面的知识框架,了解自己的不足与缺陷。

关于本书的勘误:

限于我能力不足,加之个人精力有限,本书难免有错误之处,如果您在阅读过程中遇到了问题,欢迎您联系我的QQ:206496795 勘误发布: http://note.youdao.com/noteshare?id=a7f0705acb54486b627de091ab277314&sub=94EB566C5FB441159FA82618AD3A9090

本书的获取:

链接:https://www.lanzous.com/b588019/ 密码:9968

漫谈

我一直有一个想法,学习只是生活的一部分,我想要走出一条不同的轨迹,我不知道该怎样开口,不知道该用怎样的文字,把自己的心情完整记下来,让他们如挂在风墙边的的蓝色风铃般静静地挂在那里,静谧而美好。我想和你谈一谈梦想这个遥远而又熟悉的词汇。

不久之前,一位学姐写信向我诉苦,她说,和闺蜜一同去比赛,因为种种原因,她没有拿到奖项,而闺蜜不仅拿到了奖,而且是全校第一,每次回到宿舍,周围的同学总是在说闺蜜拿到了这个奖就可以怎样怎样。她感觉闺蜜夺走了属于她的光芒,因为以前,闺蜜的成绩远远不如她。在发自内心的替她感到的同时,又有一丝丝嫉妒。

良久沉吟,这或许是一种缺失,一种害怕不被人重视,害怕被世界遗忘的内心缺憾。

学姐也曾是一个骄傲的人,只不过现实和理想的巨大落差给了她重重一击,自己的现实和他人的情况对比又是一记重锤砸下,渐渐磨灭了她的骄傲。在社会的大磨盘下她从一个开始有棱有角的正方形,被打磨、抛光成一个光滑的球,又在一次又一次的刺激中逐渐变得麻木。

每个人都或多或少会有这种感觉,此刻,我想把我们探讨的结论转赠给你,愿致你以宁静。

这种缺失实际是孤独,内向,敏感,细腻导致了你的孤独。但不要因此而悲伤,正是孤独让你变得出众,而不是合群。阅读和思考是你获得能量最高效的方式,你总有无数的灵感,想着别人无法理解的事情。你在社会中就像个异类,就像世人难以读懂梵高,达芬奇的作品一样,你以为自己缺失,其实你是拥有太多。就像美剧的超能英雄一样。人和动物的根本区别就是人是在不断的思考中沉淀优势,明确航向,变成一个崭新的自我,你真正的缺失是对自己的不了解以及别人对你的不理解,弥补缺失的唯一方法就是阅读,探寻自己的内心,寻找自己真正想做的事情。才华横溢、有所作为的人,都是会享受和利用孤独的人,他们在孤独的时候积蓄能量。不要试图让别人理解你,正如你不能让盲人只凭触觉感受就做出绘画。任何一个害怕独处而在餐桌上、在夜总会、在酒吧里寻找一种存在感的人,都会在人群中被淹没。

不是你的错,既然无法适应这个世界,为什么不尝试去做一些事情来做出事实呢?就像创立特斯拉的硅谷钢铁侠埃隆·马斯克一样,凭借送入太空的特斯拉电动车,让外界看到他做白日梦的功力,把未来科技之美带给了世界。

疯狂的人有两种,一种是真疯,一种是真疯,前者强调在一个真字,后者强调在一个疯字,只有疯狂到认为自己能够改变世界的人才,才能够真正改变这个世界。

1776年,造就蒸汽革命瓦特的灵感源于他的异想天开,

1879年,造就万家灯火的爱迪生的灵感源于他的天方夜谭

1886年,造就"钢铁长城"卡尔本茨的灵感源于他的荒诞无稽

1903年,造就银鹰展翅莱特兄弟的灵感源于他的痴人说梦

大胆一些,不要害怕做"白日梦",不要怀有渺小的梦想,他们无法打动人心,最重要的是,无法打动你的心。

无知不是错,错的是贪图安逸,放下你自己的骄傲,承认自己的不足吧!最怕碌碌无为一生的你,还安慰自己平凡可贵。

少年的少不在于骨龄,而在于心,心若鸿鹄比天高,纵是年岁已高,也尚可作为;若是年纪轻轻便已心老,了无生趣,对生命毫无激情,纵是年轻,又有何用,少年,心若在,梦就在。

高晓松说周长是憧憬和怀念的天平,当它倾斜得颓然倒下的时候,那些逝去的日光的夜晚该用怎样的声音去抚慰?你的状态如何,决定你的未来,你现在的位置就是你过去的心态之中的体现,你如果过去奋发向上,你现在不言自明。如果你是异性,会不会爱上现在的自己?

一个人可以非常清贫,困顿低微,但是不可以没有梦想,只要梦想一天。那一天就可以改变自己的处境。威尔逊用一句话总结:"我们因梦想而伟大,所有的成功者都是大梦想家,在冬夜的火堆旁,在阴天的雨雾中,梦想着未来,有些人让梦想悄然绝灭,有些人的悉心培育、维护,直到它安然渡过困境,迎来光明,希望,而光明和希望总是降临在那些真心相信梦想一定会成真的人身上"。无梦想何茫,每伏于我之心,使我之心常不平,至此梦为实。就像埋在地下的种子一样,它们必须发芽,长出地面去追寻太阳的痕迹。

梦想就像镜中月,看起来很近,但你若是想要去触摸,你必须付出难以想象的努力,远方的美好。站在金字塔顶端俯视可看到众生,站在金字塔的底端,充斥在你眼前的只是砖石。高度,同样代表着你的眼界,若你周围都是生命的世事烦琐,你的心中也不会有天地的浩荡。是的,海的博大,在于它的海纳百川,但你看不到那一切,又怎会收容包纳一切?

人有梦,因梦不同。梦想得久,则成,我们难道不是在前人的梦想之中吗?春有春之暖,夏有夏之热,秋有秋之获,冬有冬之寒,得受生活的乐趣。

奋发是生命的常态,生命的岁月若不像流星燃烧,激情四射。又有何意义?不要让你就像过去百万年逝去的岁月一样,在历史的长河中逐渐归于尘埃,汲汲无名度过一生,你愿意吗?买菜洗衣做饭,朝九晚六,一眼可以看到底的生活是一种深渊。当你凝视深渊的时候,深渊也在凝视着你。

鹿晗在《勋章》中唱到:

"可我会像奥德修斯一样 ,

朝着心中的方向 ,

哪怕众神会在彼岸阻挡 ,

当我需要独自站在 ,

远方的沙场 ,

武器就是我紧握的梦想 ,

而我受过的伤 ,

都是我的勋章。"

你不能把这个世界维持在你所不喜欢的样子。努力和遗憾,哪个更痛苦?坚持的人都是自己的英雄。在一次又一次的打击中"重整山河待后生",将惨不忍睹的失败化作动力,在和血吞牙中变得越来越刚强。请不要放弃,不能放弃,你的每一次失败都将化作脚下的基石,为你的下一步奠定坚实的基础,请坚信你的梦想,哪怕代价是在现实面前,撞得头破血流,在他人嘲讽中心被纠的生疼。顾里说:"我不知道什么是年少轻狂,我只知道胜者为王。

一个人要实现自己的梦想,最重要的是具备以下两个条件,勇气和行动。

你是你一生的主角,不能轻易放弃;承载了太多期许的目光,怎能轻易放弃?

那就让我们提笔为刀,奋战到底。

不相信世界就是这样,明知道:

有的时候必须低头,

有的人必将失去,

有的东西命中注定不能长久,

仍然要说在第一千个选择之外,还有第1001扇窗等着我打开

然后有光透进来!

结语

最后感谢所有可爱的阅读者,希望大家都能够在2019完成自己的目标~