摘要: 对于JavaScript的继承和原型链,虽然之前自己看了书也听了session,但还是一直觉得云里雾里,不禁感叹JavaScript真是一门神奇的语言。这次经过Sponsor的一对一辅导和自己回来后反复思考,总算觉得把其中的精妙领悟一二了。1. JavaScript创建对象在面向对象语言中,通常通过... 阅读全文
posted @ 2014-05-20 23:41 harolei 阅读(938) 评论(2) 推荐(1) 编辑
摘要: 将Firefox下可以正确运行的代码迁移到Chrome时遇到的一些问题及解决办法。 阅读全文
posted @ 2013-12-09 22:23 harolei 阅读(31320) 评论(2) 推荐(5) 编辑
摘要: 如何使用python selenium自动化一个网站的注册流程,如何使webdriver等待某一个元素加载完成。 阅读全文
posted @ 2013-12-08 23:59 harolei 阅读(4905) 评论(1) 推荐(3) 编辑
摘要: 需求:现在有一个网站的页面,我希望用python自动化的测试点击这个页面上所有的在本窗口跳转,并且是本站内的链接,前往到链接页面之后在通过后退返回到原始页面。要完成这个需求就必须实现3点:1. 找到原始页面上面所有的在本窗口内跳转的链接2. 跳转到目标页面之后,“后退”到原始页面3. 在原始页面上继续点击后续的链接首先,要找到页面上的所有链接并不困难。selenium为我们提供了find_elements_by_tag_name方法。我们只需要在初始化webdriver之后,调用driver.find_elements_by_tag_name("a") 就能找到页面上的所有 阅读全文
posted @ 2013-12-08 22:47 harolei 阅读(32866) 评论(1) 推荐(2) 编辑
摘要: Why Automation Testing现在似乎大家都一致认同一个项目应该有足够多的测试来保证功能的正常运作,而且这些此处的‘测试’特指自动化测试;并且大多数人会认为如果还有哪个项目依然采用人工测试来保证代码的正确性的话,那简直是太落后了,太不可思议了。但是在我现在的项目里,之前大部分的情况下我们还是在使用手动测试,项目依然在每周一次井然有序的上线着。当然有部分原因是因为项目业务和技术上的特殊性,但是这开始让我思考:我们究竟为什么要进行自动化?什么情况下该进行自动化?自动化测试使用与所有的测试场景吗?我认为自动化测试对我们的项目之所以重要,有几点原因:Automated Software 阅读全文
posted @ 2013-11-18 10:06 harolei 阅读(1867) 评论(0) 推荐(2) 编辑
摘要: 最近在做TWU关于TDD的作业,对JUnit中测试异常抛出的方法进行了一些学习和思考。在进行单元测试的时候有的时候需要测试某一方法是否抛出了正确的异常。例如,我有一个方法,里面对一个List进行读取操作,可能会抛出IndexOutOfBoundsException,我希望在单元测试中通过测试保证该方法会正确的抛出正确类型的异常。总结起来这样的测试异常是否被正确抛出的方法有三种:1. try…fail...catch…@Testpublic voidtestExceptionMessage() { try { new ArrayList().get(0); ... 阅读全文
posted @ 2013-08-06 22:37 harolei 阅读(41417) 评论(1) 推荐(1) 编辑
摘要: List和Set:List可以将元素维护在特定的序列中。它的特点是有序,允许重复元素出现。最常见的List的实现类是:ArrayList。Set的特点是:无序,不保存重复元素。当尝试将重复的元素添加到Set中,它就会阻止这种重复现象。Set最常见的实现是HashSet。ArrayList更适合顺序的访问元素,它更像一个可变长度的数组。但是想要在List中间插入或删除元素时相对会比较慢。HashSet可以很快的查询到某个元素是否在Set中,因此可以很快的实现快速查询。遍历打印ArrayList的方法:public void firstWayPrintList() { for(int... 阅读全文
posted @ 2013-08-04 16:48 harolei 阅读(254) 评论(0) 推荐(0) 编辑
摘要: SiteMesh是一个轻量级的web应用框架,实现了Decorator模式。它的目标是将多个页面都将引用的jsp页面通过配置加载到相应的jsp文件中。在我们的项目中,每个jsp都需要添加两个top和bottom的jsp来完成某些功能。最笨的方法当然就是在每个页面上hard code这些功能的相关代码,但是这样的做法实在是不满足DRY的原则。clean code需要我们最大程度的复用我们的代码,减少代码冗余。SiteMesh提供了这样的解决方案:使用decorator模式来动态的给每个jsp页面添加额外的职责。使用了Decorator模式后每个页面就可以专注于解决本页面要解决的问题,而不需要关心 阅读全文
posted @ 2013-07-29 22:07 harolei 阅读(401) 评论(2) 推荐(0) 编辑
摘要: 在terminal中输入:mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name} -DarchetypeArtifactId=archetype-quickstart -DinteractiveMode=false之后maven会自动下载所需要的包,建立项目结构,当显示Build Success时项目建立成功。建立的项目结构如下:MavenGenerateProject |-src |---main |-----java |-------com |---------tw |-------- 阅读全文
posted @ 2013-07-22 10:50 harolei 阅读(761) 评论(0) 推荐(0) 编辑
摘要: 今天和秋秋一起review了一下我自己写的登录页面。她给我提了几个point,对我很有启发。css样式的代码和html代码分离。我自己做的时候是在google console里面调好了样式以后就直接copy到了对应的tag里,而不是在css中通过selector来找到元素后设置样式。这样的做法我感觉和java代码中同样的函数在个各类中反复出现有些类似。将html和css完全分离开来有几个好处:逻辑上,看html代码的时候不用关心它对应的样式,而只用关心html的结构;另外在以后修改的时候,这样的做法就避免了需要到多处去寻找相应的地方修改。例如:我想修改...这个div的样式时,如果我有部分样式 阅读全文
posted @ 2013-07-15 22:02 harolei 阅读(281) 评论(0) 推荐(0) 编辑