最近小白掌柜接了领导一项任务,要全程自动化的注册一个网站并登录网站后逗留一段时间再离开,起初觉得这个应该难度不会太大,就欣然接受了。谁知,拿到具体需求后一分析纳尼??这个里面其实有好多难点,but本着我就是进阶的小白还是决定挑战下去!今天先不说其他的难点,只说关于如何提取动态class/id里面的文本(就是注册后网站一般都会给邮箱发一个验证码,要提取的就是它)的问题!!!
进入正题,因为项目领导给的验证邮箱是雅虎的,所以我就按照之前的方法进行自动登录并查看邮件再提取验证码这个思路。自动登录没有问题,查看邮件也没有问题,重点来了!!!当打开邮件到提取验证码标签的时候发现无法定位的问题!因为每刷新一次页面,验证码前面p标签的class属性值就变化一次。。。然后细看这段HTML代码,发现他是字母+数字的组合形式,而且不止是验证码这里是动态class,连上面的父元素都是动态的id。。。:
顿时觉得雅虎的技术人员此刻是这样的表情
但是这怎么能难倒我们这样的技术宅,马上谷歌起来,经过一番查找,终于让我找到了解决的办法,感谢这位大佬的指点 。解决动态id/class有四种方法:
发现雅虎邮件这里不适合第一种方法,第二种貌似可以,第三种不稳定,第四种对浏览器的支持情况不一样;所以综上就选择了第二种:使用相对关系定位。回到雅虎邮件