1、窗口句柄的处理 左下角这个"在线咨询"控件,WebDriver打开页面时会弹出一个对话框。对话框我就不去截图了,很多网站都会有。这个对话框在登录页面的上一层,它占据了WebDriver当前窗口控件的句柄,要先把它干掉,否则拿不到登录页面上的HTML元素。 2、验证码"VKI4"图片验证码的获取 写到这里我突然意识到,我在程序里做了无用功,写了多余的程序(反证了写技术博客的好处)。程序代码中,我的处理是:先将这个Base64编码的验证码字符串解码为图片二进制流,然后生成图片,再编码为Base64调用百度的文字识别OCR接口,去提取文本。看见没有,绕了一大圈,直接获取元素的Base64编码调用百度的OCR接口即可。 我之前的处理遇到一个问题,Base64编码的字符串解码后,由于对换行符没有处理,导致刚开始生成的图片,打开时总是报错"Image Broken"。耽搁的一周时间里,我采取的Plan B是用元素坐标先定位验证码位置,将整个页面全屏截图,然后从大图中扣小图这种方式。Plan B是可行的,但觉得很麻烦,后来问题解决后将这个方法放弃了。 3、生成验证码图片 将Base64编码字符串解码为二进制流之后,最开始生成图片是保存到本地硬盘,调百度OCR时再读进内存。后来觉得这样一出一进,多了两次IO操作,改为使用StringIO模块(Python3里面是BytesIO模块),将二进制流直接写入内存,不进行IO处理,我没有比较过执行时间,理论上这样处理会快很多。 4、文字识别 刚开始使用Tesseract OCR进行文字识别,考虑到它的可移植性比较差,准确性没有商业产品高,后面就放弃了。
Jason Huggins在2004年发起了Selenium项目,当时身处ThoughtWorks的他,为了不想让自己的时间浪费在无聊的重复性工作中,幸运的是,所有被测试的浏览器都支持Javascript。Jason和他所在的团队采用Javascript编写一种测试工具来验证浏览器页面的行为;这个JavaScript类库就是Selenium core,同时也是seleniumRC、Selenium IDE的核心组件。Selenium由此诞生。 关于Selenium的命名比较有意思,当时QTP mercury是主流的商业自化工具,是化学元素汞(俗称水银),而Selenium是开源自动化工具,是化学元素硒,硒可以对抗汞。
本版积分规则 发表回复 回帖并转播 回帖后跳转到最后一页
QQ咨询|关于我们|Archiver|手机版|小黑屋|( 辽ICP备15012455号-4 ) Powered by 期权论坛 X3.2 © 2001-2016 期权工具网&期权论坛 Inc.
下载期权论坛手机APP