一个小测试总结

最近在学webdriver,用手头的项目做了一个小demo,真是阻碍重重,别看看短短的几行代码,丫的一直报错,还不知道错在哪里。哎,没办法,刚入门的菜鸟总是备受打击。由于这么几行代码是花了一个星期的上班空闲时间写出来的,有必要做一下小小的总结。不管怎么说,虽然这段小代码不完美,有时还是会报莫名其妙的错,但还是相当有必要做个总结的,付出了时间嘛。再说很久没更新博客了,太懒了(鄙视一下自己)

#encoding: gbk

require ‘selenium-webdriver‘

dr = Selenium::WebDriver.for:firefox
url = ‘http://XXXXXX‘
dr.get url

dr.find_element(:id,‘iptUid‘).send_keys(‘XXXXXXX‘)
dr.find_element(:id,‘iptPwd‘).send_keys(‘XXXXXX‘)
dr.find_element(:id,‘btnLogin‘).click
sleep 2
dr.manage.window.maximize()
#dr.find_element(:id,‘closePop‘).click
dr.action.send_keys(:escape).perform

dr.find_element(:xpath => %Q{//*[@id=‘G_H‘]/div[1]/div[3]/ul/li[2]/a}).click
sleep 10

dr.find_element(:id,‘account‘).send_keys(‘XXXXXXX‘)
dr.find_element(:class,‘btn_search_id‘).click
sleep 10

dr.switch_to.window dr.window_handles.last

dr.find_element(:xpath => %Q{html/body/div[3]/div/div/div[6]/div[1]/div[1]/div[3]/ul/li[5]/dl/dd[1]/a}).click
sleep 5
#
dr.switch_to.window dr.window_handles.last
puts "title of current page is #{dr.title}"
dr.find_element(:id,‘mailcontent‘).send_keys(‘WebDriver using in firefox! Ok Do something more interesting^_^‘)
dr.find_element(:class,‘btn_mobile_blue_02‘).click

dr.quit

  本来选择ruby来写是因为ruby的可读性好,可没想到ruby跟webdriver相关的资料实在是不多,甚至连某个方法是怎么用的语法都不知道,经常报那些NoMethod错误,真是我也很无语。以至于出了错误google也好百度也罢,总是很难找到自己想要的,不过最终解决还是靠google,只是花的时间多了。现在就总结花时间花最多的点:

1.操作键盘的某些键

这个真的很坑,网上找了好久都没找到确切答案,最后还是自己一遍遍试出来的。本来知道是用send_keys这个方法,可是就是不知道怎么用,结果就是各种报错,什么NoMethod啊之类乱七八糟的错误都出来了,好不容易在网上看到有java写的代码,结果人家java又没有加上perform,还是错了。总之折腾了很久,好在解决了,也知道鼠标和键盘的很多操作都是要用到action类来调用相应的方法的。

2.在新打开浏览器页面上操作

由于菜鸟的原因,结果在整个过程中产生了新打开浏览器页面的时候以为自然而然就会到新开页面去找对应的元素,结果丫的一直报找不到元素的错,然后我以为是我的定位方式错了,用了id不行,用了class不行,用了css不行,用了xpath还是不行,搞得我差点崩溃。好吧,不得不承认自己很弱智,其实很简单的问题可就是没那个意识,就陷进死胡同了,然后就出不来了。难怪老是报找不到页面元素,根本就没在新开页面上找,当然找不到。好不容易等我意识到错在哪里的时候(其实还是看到网上的一篇博客的介绍),不过那篇博客并没有帮我解决问题,可能watir跟webdriver还是有区别吧,反正有window这个类就是没有那样的用法,更别说直接用window(‘title’).use这样的方式了。然后也是各种找,终于让我找到了switch_to,可是就是不会用,就是现在具体怎么用也还是不知道。dr.switch_to.window dr.window_handles last这行代码我也只是知道切换到最后一个打开的页面去进行操作而已,如果是想实现自由切换什么的,还是做不到,不过现在有点眉目了,相信应该用不了多长时间就可以搞定了。

3.乱码的问题

乱码的问题我真是无力吐槽,本来就不是外国人做的项目根本不能要求不出现中文的情况,可就是不明白所有的人用了utf-8就解决了乱码问题,我就愣是不行,结果坑爹的是花了那么多时间去search,告诉我的无一都是加这么一句#encoding:utf-8。(我勒个去)我加了,从头到尾检查不下数十遍,拼写错误神马的也没有,可还就是给我继续乱码。最后我都差点放弃了,乱码就乱码吧,能正常跑起来就好。幸好突然想起来除了utf-8,还有其他方式,就抱着试一试的心态把utf-8换成了gbk,结果就搞定了。哎,编程语言的博大精深,我这种菜鸟只能无限感慨了。

其实还有其他问题也很让我纠结的,不过这里就不说了,再说下去也挺打击我学习的积极性的。上面那段代码就是最简单最原始的代码了,没有对可能出现的异常呀超时呀什么的做判断,所以不是每次都能跑成功的。用一句话来概括就是:弱爆了。哎,不说了,路还远着呢,慢慢走吧。

时间: 2024-11-10 16:57:10

一个小测试总结的相关文章

关于链表的一个小程序

关于链表的一个小程序: /**************************链表*****************************//* 具备功能 *//* 链表按元素位置插入 *//* 链表按元素位置删除 *//* 链表全表遍历 *//* 链表整表创建(头插法) *//* 链表整表创建(尾插法) *//* 链表整表删除 *//**************************链表*****************************/ #include<stdio.h>#in

原创观点:还在认为企业或个人只能申请一个小程序吗?

今天第一次体验了整个小程序注册流程,使用的是我自己的这个简单的教程(个人无appid如何进行申请开发者权限,简单操作步骤),教程虽然是我的,我自己却没有真的实践过,真是误人子弟,自己也不一定能知道:今天亲自测试了一下:首先走完邮箱验证: 验证完毕后,开始进入信息登录,这里,有一些关键信息,是本文观点的主要支撑: 请输入管理员的身份证号码,一个身份证号码只能注册5个小程序. 然后填写完毕后,到了第二个关键点: 为了验证你的身份,请用绑定了管理员本人银行卡的微信扫描二维码. 这个点,透露了两个信息,

先做一个“小程序”——关于微信应用号的六大猜想

先做一个“小程序”——关于微信应用号的六大猜想 9月 21 日,苦等了9个多月的时间,应用号终于与我们见面了,命名为「小程序」. 01 为什么推出小程序? 考虑到小程序对整个APP市场的影响,毫无疑问会对现有的APP生态带来一定的冲击.但是,之所以推出小程序,最直接的原因可能是为了构建和扩充微信生态链,让微信更具开放性. 如我们所知,目前微信公众号分为三类: • 服务号,连接人和商品,目前很多电商企业,以及在微信端提供产品和服务的企业都用服务号. • 订阅号,微信官方的定位是阅读,连接人和资讯的

基于宿主机制作一个小系统

一.Linux系统的启动流程 1.启动程序 Linux系统的启动流程为:POST-->BIOS(BootSequence)-->MBR(bootloader,446)--> Kernel-->initrd-->(ROOTFS)/sbin/init(/etc/inittab). 首先上电自检POST:它负责完成对CPU.主板.内存.软硬盘子系统.显示子系统(包括显示缓存).串并行接口.键盘.CD-ROM光驱等的检测.主要检查硬件的好坏. 紧接着就是BIOS进行硬件相关初始化,之

一个小软件练习了一下python

朋友用python写了一个小软件,刚好没有怎么认真用python编过程序,于是就改进一下 主要练习了一些知识: 1.python Tkinter 页面布局,这次软件用了用了grid 2.Event 事件绑定 3. 字符串的处理. 4.tkFileDialog 的使用 5.一点点面向对象的编程. 6.python编码的结构以及练习Code好习惯 后期改进: 1. 加滚动条 2. 加算法变换文件 3. 可以修改保存路径 4.强化错误处理 5.添加函数,根据类型,用office直接双击打开转换成功的文

FMX相当于在界面上自己又做了一个小操作系统

FMX的自画界面我也不看好,比如复制粘贴,太丑了,系统做得很好很精细的复制粘贴界面,就是无法调出,比如MIUI,复制粘贴还能有个放大镜,可以选择到屏幕边缘的文字,可以选择剪贴板内多个可粘贴的文字:还有那个Memo,有的时候该折行的不折行,有的文字看不到了.文本输入框,隐藏剪贴板后,再点击就弹不出来了:系统本身的文本框就没有这个问题.底部输入框输入时自动上移界面,好像是操作系统本身就有的吧,FMX还得自己编很多代码,也不一定编好.自己编码补漏洞是另外一回事.FMX给我的感觉是在界面上自己又做了一个

Word 2003安装时的一个小问题

Word2003安装时的一个小问题 今天给一个老师安装软件,出现了这个问题? 系统管理员设置了系统策略,禁止进行此安装. 解决方法 开始-运行-regedit 在注册表项里找到下面这个选项: HKEY_CLASSES_ROOT\Installer\Products\4080110900063D11C8EF10054038389C 将这项删除.再进行安装就可以了.

简易的shell ---- MOS 的一个小练习题

想到自己的好多图片还有代码在上一次硬盘挂掉的时候丢失, 心中就是阵痛... 这个简单的shell代码被放在临时的pdf文档中得以被保留了下来... 阿门...今天想写个简单的数据库的时候, 感觉是不是要做个交互页面, 不让用户写程序, 模仿MySQL简单的命令, 用户傻瓜化就好了... 交互的方式可以是shell.  其实中科院孟宁老师的一个OO课的前几课的一个小作业就是自己写个shell. 不难. RTFSC 于是... demo如下: /***************************

【ASP.net控件】DropDownList数据绑定一个小bug

绑定数据出现这种情况,明明在第一项插入了一条数据,却始终在DropDownList中没有显示出来. 代码如下: if (!IsPostBack) { //绑定城市 DataTable dtCity = new HighSearch().GetCitySelect(); DropDownList1.DataSource = dtCity; DropDownList1.DataValueField = "citycode"; DropDownList1.DataTextField = &q