9Q WebDriver – 处理验证码
有人说验证码吗? 好吧,我听到了! 让我们看看如何使用 Selenium WebDriver 处理这些问题,是的,我们将尝试尽快完成这项工作,因为今天晚些时候我将不得不参加比赛。
准备开始
CAPTCHA 是“”(用于分辨电脑和人类的完备自动化公开图灵测试)的首字母缩写。
哦,别生我的气! 那不是错字! 确实有一个叫做backronym
的缩写。 当由其他词的缩写形成缩写时,称为缩写。 但是,如果创建了一个新短语以适合已经存在的首字母缩写,那么它被称为简称。
因此,现在您知道什么是简称,并且 CAPTCHA 代表什么,让我们详细介绍一下。 验证码主要用于确定用户是否为人类。 它会生成图像或人类可以解决的某种形式的测试,但漫游器/计算机程序无法解决。
因此,其主要目的是防止漫游器和其他自动化程序从网站获取任何敏感信息。 因此, 验证码可以杀死自动化! 如果我们能够使其自动化,那么使用验证码的原因就变得毫无价值。
我有袖子吗? 让我看看…
- 出于测试目的,我们总是可以要求开发人员
- 禁用验证码验证
- 提供解决方法或后门以获取验证码值
- 调整验证码,使其每次都接受一个特定输入值
- 开发一种方法,将随机文本存储在验证码图像的
alt
属性中,然后可以使用可用的定位符获取该随机文本并将其传递到验证码文本框中
请注意,在使用上述这些方法进行测试时,应用安全性受到损害。
这是我之前的一个项目中遵循的过程。 因为此方法可确保被测应用恰好是将被推入生产环境的应用,并且安全性丝毫不受影响。
让我们看一个示例来更好地理解。
场景
- 打开 Firefox 浏览器
- 通过找到“当前护照号码”文本框:标记和名称属性
- 输入“
123456789
” - 提示用户进行干预并输入显示的验证码
- 通过 ID 找到验证码文本框
- 将用户输入的值发送到找到的验证码文本框中
此方案的 JUnit 代码是,
执行结果
注释清楚地提供给每一行代码。
保存在“captchaVal
”中的该值将在 ID 所在的验证码文本框中输入。
在 JUnit 窗格中,绿色条显示测试用例已成功执行。
下图显示了在 Firefox 浏览器中执行的最终输出。
我让你们全都受了验证码! 在另一篇文章中再见。