关于本书的类型:

  首先在我看来技术书分为两类,一类是“思想”,一类是“操作手册”。

  对于思想类的书,一般作者有很多年经验积累,这类书需要细读与品位。高手读了会深有体会,豁然开朗。新手读了不止所云,甚至会说,都在扯犊子,看了半天也不知道如何下手。

  对于操作手册的书,一般会提供大量的实例,告诉你详细的步骤。对于高手来说,这不就是翻译了一下官方文档嘛,好意思拿来骗钱。但对于新手来说,反而认为是好处,跟着上面的步骤操作就掌握了某种技术能力。

  显然,本书属于后者,书中提供了大量代码实例,并没有太多思想层面的指点与探讨。当然,对于web UI层的自动化代码,随着时间推移书中的例子或不能运行成功。所以,对于已经在自动化方面有经验的同学也不要抱太大希望,能从本书中看到太多高深技术。但对于新手来说,也不要想得过于简单,如果你编程基础比较弱的话,读起来也会有点难度。

关于出书目的:

  Selenium自动化测试技术已经出来很多年了,知道2013年的时候,市面的关于该技术的书(中文版)都只是在讲Selenium工具本身,这导致很多人(包括我)看完这些书后,并没有什么卵用。只会拿Selenium IDE录制一些简单的脚本。单真正把Selenium用好,编程语言和单元测试框架是很重要的知识。

  从我准备整理这本电子文档的时候,就把这两块知识作为非常重要的技术介绍。另外,国内大多Selenium书籍都是基于Java语言的,其实,Ruby和Python更适合测试人员学习。

  出一本基于Python语言的,也算是填补一下空白。

还会出版Java版的吗?

  不会,虽然在今年八月份的时候我也整理出了Java版的电子书。

《selenium2 java自动化测试实战》

  但现在市面上已经出版的基于Java的Selenium已经有了单元测试框架的讲解,所以,我感觉没有必要再将Java版的出版了。

关于出版的过程:

  其实,本书能够出版中间也经历了曲折,早在2013年我就在整理关于Python+Selenium的文档,刚开始整理点内容免费共享,后来再加点内容卖5元,再后来加了些内容卖8元;再后来加了很多内容卖29元。再后来,就被共享到网上了,虽然,大多向我购买的同学还是很尊重我的劳动成果的。

  在此期间一直更新与丰富里面的内容。收获了赞扬与朋友,网友的问题也促使我在这方面的经验越来越丰富。

  直到2014年年底,有一网友(和别人合著过书的朋友)找到我,说想让我出书。其实,经过这么久的积累,也希望它能成书。于是,又整理了一版出来交给他。他的合同发来时,人傻了,原来是自费出书,购买书号和印刷费我出,赚得钱和他对半分,而且,我的书还要挂他的名字,表示与我合著。我就呵呵了。

  后来,到2015年的8月,出版社编辑安娜找到我,问我出不出书,关于git的,....不知道她为什么会知道我精通git。那我说git不会,手上有一本Selenium的相关书让她看能不能出。于是,就开始进入流程。

  我填写出书的主题---->我重新整理内容--->其间合同来往----> 编辑一审--->第一次排版出来---> 我又改了不少内容-->编辑二审 -->二次排版-->复审-->终审-->发稿-->申请定价-->印刷-->上市。

  主要是由于我中间改稿,导致11月份出版的书,延迟到1月份。

关于书封背面的评价:

  狄枫,MarkRabbit 、多可笑 ,我们都是一个技术群里的朋友。

  狄枫嘛,比较习惯在群里面侃大山,引一群膜拜。是我们中间技术和资历比较老的。

  MarkRabbit 群主,在我初学自动化时,给了很多帮助。

  多可笑,技术不错,熟悉BDD行为驱动技术,起初我们经常一起讨论技术。

  后来,想是不是应该找点牛B的人写书评。联系到了陈曦明(hyddd),如果你想学习Selenium一定能搜索到他的《Selenium私房菜系列》 ,他也很高兴的帮我写了书评。

关于前言

  前言是让乙醇写的,早在2013年,我们也是因为selenium自动化技术在网上认识,后来,一起吃过一次饭,虽然平时很少交流,却有很高的默契。一起合作的自动化测试培训已经两年多了,配合一起很默契。他技术能力很强,而且也很广泛。在此,对他表示感谢。

关于定价

  全书整理下来大概350页左右,由于印刷的成本比较高。所以,编辑建议定价69元,但我们都感觉有点贵了。我们大多时间在买书时并不看页数,更关注定价,于是,经过商量把最后两章拿掉,做成了电子版。别外一原因是最后两章与前面章节的内容关联不多。但做为测试人员有必要了解与学习。定价59元的书,在京东和天猫打折销售 44元。好吧!感觉这个价格你们可以接受。
  最后两章下载地址:www.broadview.com.cn/27853

关于最后的项目
  抱歉,现在(2016年11月)才把书最后的例子放到了GitHub上面:https://github.com/defnngj/mytestpro

   虽然例子的内容与书中有所不同,但代码结构是一样的。当然,我有时间也会使例子更丰富一些。

关于本人
  生活依旧,工作依旧,学习依旧,趁着对技术还热情,继续学习与总结。这本书总结和维护了这么久,能够出版。也算给了它个名份。

关于《selenium2自动测试实战--基于Python语言》的更多相关文章

  1. 关于<meta NAME="keywords" CONTENT="">

    昨天终于以实习身份入职一家小创业公司,今天让我多看看别人的网页怎么写的,发现了一个以前都没关注过的东西. <meta name="keywords" content=&quo ...

  2. 转 :meta name的含义:<META http-equiv=Content-Type content="text/html; charset=gb2312">

    meta是什么?meta其实是html语言head区的一个辅助性标签.在几乎所有的网页里,我们都可以看到类似下面这段html代码:<META http-equiv=Content-Type co ...

  3. HTML <meta> 标签 遇到<meta http-equiv="refresh" content="0; url=">详解

    页面定期刷新,如果加url的,则会重新定向到指定的网页,content后面跟的是时间(单位秒),把这句话加到指定网页的<head></head>里一般也用在实时性很强的应用中, ...

  4. 转 【<meta name="description" content=">】作用讲解

    今天在看别人写的网站代码,发现类似<meta name="Keywords" content="" >.<meta name="De ...

  5. <head>中<meta name="viewport" content="width=device-width,initical-scale=1"的作用>

    <meta name="viewport" content="width=device-width,initical-scale=1"的作用> co ...

  6. 关于<meta http-equiv="X-UA-Compatible" content="IE=edge" />问题

    我在做网页过程中都是在火狐浏览器下进行的,可是有一次我在IE浏览器下打开时却发现我设置的style.css中的大部分样式都失效率了,这个问题足足困扰了我两天,终于在百度的帮助下找到了答案,原来在网页的 ...

  7. 优先使用最新版本的IE 和 Chrome 内核 1 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

    兼容模式 优先使用最新版本的IE 和 Chrome 内核 1 <meta http-equiv="X-UA-Compatible" content="IE=edge ...

  8. 论meta name= viewport content= width=device-width initial-scale=1 minimum-scale=1 maximum-scale=1的作用

    一.先明白几个概念 phys.width: device-width: 一般我们所指的宽度width即为phys.width,而device-width又称为css-width. 其中我们可以获取ph ...

  9. meta name="viewport" content="width=device-width,initial-scale=1.0" 解释

     <meta name="viewport" content="width=device-width,initial-scale=1.0">   c ...

  10. <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 的说明

    X-UA-Compatible是针对ie8新加的一个设置,对于ie8之外的浏览器是不识别的,这个区别与 content="IE=7"在无论页面是否包含<!DOCTYPE> ...

随机推荐

  1. Spring MVC注解的一些案列

    1.  spring MVC-annotation(注解)的配置文件ApplicationContext.xml <?xml version="1.0" encoding=& ...

  2. php与js中函数参数的默认值设置

    php函数参数默认值设置: <?phpfunction test($val=3){   echo $val."<br/>";}test(11);test();?& ...

  3. 学习JavaScript闭包

    作者: 阮一峰 日期: 2009年8月30日 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 下面就是我的学习笔记,对于Javascript初 ...

  4. tomcat报错java.lang.IllegalArgumentException: Document base XXXXX does not exist or is not a readable directory

    启动tomcat的时候报如下错误: java.lang.IllegalArgumentException: Document base F:\java\tools\tomcat\me-webapps\ ...

  5. XMLHTTPRequest对象的创建与浏览器的兼容问题

    MLHttpRequest 对象是AJAX功能的核心,要开发AJAX程序必须从了解XMLHttpRequest 对象开始. 了解XMLHttpRequest 对象就先从创建XMLHttpRequest ...

  6. SQLSERVER中的ALL、PERCENT、CUBE关键字、ROLLUP关键字和GROUPING函数

    SQLSERVER中的ALL.PERCENT.CUBE关键字.ROLLUP关键字和GROUPING函数 先来创建一个测试表 USE [tempdb] GO )) GO INSERT INTO [#te ...

  7. RBAC模型速记

    RBAC Model core concept: user,role,permission,operation,resource user has many roles, assign role to ...

  8. Net作业调度(四)—quartz.net持久化和集群

    介绍 在实际使用quartz.net中,持久化能保证实例重启后job不丢失. 集群能均衡服务器压力和解决单点问题. quartz.net在这两方面配置都比较简单. 持久化 quartz.net的持久化 ...

  9. 辛巴学院-Unity-剑英陪你零基础学c#系列(二)顺序

    这不是草稿 辛巴学院:正大光明的不务正业.   上一次的教程写出来之后,反馈还是挺多的,有很多都做了修改,也有一些让人崩溃,不得不说上几句.有些人有些很奇怪的地方,你写篇东西,被看了以后不说他感觉怎么 ...

  10. [ASP.NET MVC 小牛之路]14 - Unobtrusive Ajax

    Ajax (Asynchronous JavaScript and XML 的缩写),如我们所见,这个概念的重点已经不再是XML部分,而是 Asynchronous 部分,它是在后台从服务器请求数据的 ...