最近在研究web自动化,登录时发现要输入验证码,之前在做手机app自动化时,就被验证码block了。这次做web时又遇到了,探索之后,发现有如下几个解决办法:
1.联系开发人员,让其帮忙在测试环境中注释掉验证码操作,这样极大方便了测试人员,同时也降低了在正式环境中跑测试,给系统带来的风险;
2.联系开发人员,修改成万能验证码。即在程序中留一个“后门”---设置一个“万能验证码”,只要用户输入这个“万能验证码”,程序就认为验证通过,否则按照原先的验证方式进行验证。
3.添加cookies
在使用webdriver测试中,cookie能够实现不必再次输入用户名密码进行登陆。
先介绍一下cookies的API:
1>getDomain();返回cookies的域名
2>getMaxAge();返回cookies的存活时间
3>getName();返回cookies的名字
4>getPath();返回cookies使用的路径
5>getSecure();如果浏览器通过安全协议发送cookies将返回true值,如果浏览器使用标准协议则返回false值
6>getValue();返回cookies的值
7>getVersion();返回cookies所遵从的协议版本
8>setPath(String url);设置cookies的使用路径
9>setSecure(Boolean flag);设置浏览器是否仅仅使用安全协议来发送cookies,例如使用https或ssl
10>setValue(String newvaule);cookies创建后设置一个新的值
11>setVersion();设置cookies所遵从的版本
12>setComment(String purpose);设置cookies的注释
selenium webDriver通过driver.manage().getCookies()和driver.manage().addCookies(ck)获取并加载cookies。
原文:http://www.cnblogs.com/yajing-zh/p/5121982.html