社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
**
**
1、环境配置(软件安装相关知识大家可在网上查找)
以下是我使用的版本:
Firefox 24.0 selenium-2.53.2
2、测试脚本
此次使用的语句都是selenium中最基础的元素定位方式
(1)首先测试使用账号密码登录淘宝web端,相关代码如下:
在此处使用driver.find_element_by_id(“J_Quick2Static”).click()语句切换到账号密码登录方式
代码运行后没有报错,但是却没有成功登录笔者账号,转到登录页面发现
按照登录页面所述,滑动滑块后却显示:哎呀,出错了,点击刷新再来一次(error:1M46j)
反复尝试,始终在这一页卡住,无法再进行下去。此时首先是怀疑自己的代码有问题,但是执行也都没报错,一切看起来没什么问题,很无奈,只能找度娘看看什么情况了……
大家可以参考一下下面这位大神的分析文档,里面对于模拟登录失败的原因通俗易懂的做了相关分析:
参考文档
因此,在web端模拟登陆可以得出结论:淘宝对于模拟登录抓取cookie的行为动作进行了一些判断,我们无法使用脚本来代替人为的操作,此次尝试失败。
(2)测试使用二维码登录淘宝web端
在账号密码失败以后,不死心的我又准备试一下二维码登录能否成功,二维码登录和账号密码登录原理大概相同,只是缺少了账号密码文本框的获取,在click登录button时,给了系统一些休眠时间,在这段时间,我们需要手动使用app客户端扫二维码登录,代码如下:
在二维码登录时,代码按照预期那样正常运行。
因此笔者大胆猜想:淘宝web端对于模拟抓包行为并不是贯穿于每一步的,只是针对于账号密码输入,和二维码操作这些关键点进行判定,只要这些关键点是人工输入,就可以登录成功。
在测试完淘宝web端以后,不禁想再看看,其他类似的网站是否也是类似,对于模拟抓包如此敏感,所以,接下来对京东web端进行简单验证。
(3)测试使用账号密码登录京东web端
测试web端京东商城账号密码登录,脚本和淘宝逻辑相同:
但是在输入账号密码点击登录后,也会出现需要人为的进行验证
此时登录button click以后,sleep一段时间,在这期间手动滑动完成拼图,即可账号密码登录成功。
综上所述:在同时用自动化脚本登录淘宝、京东web端时,淘宝会对行为进行判别,但是京东不会。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!