Selenium无论是应用于自动化测试还是应用于爬虫都会碰到一个问题,那就是登录。之前讲了很多很多种找到元素并且使用的方法。今天就来说说怎么应用起来吧。
Selenium找元素的方法有id,classname,tag,xpath,选择器。其实使用哪个无所谓,只要你能熟练地找到元素就行了。网页的操作一般就是点击和输入,也没有更多复杂的操作。
然后我在上一篇的时候已经说过cookie绕开登录,有兴趣的同学可以自己去看一下。不过这个得到cookie绕开登录之外还需要完整的请求过程,也就是说,其实有时候很难知道有哪些请求头是必须的,有那些不是必须的。这个就需要程序员慢慢去测试。
那么有没有一种方法可以不用那么麻烦,直接就使用本机已经存在的缓存进行登录呢?因为缓存是存在于自己的电脑,理论上我们只需要把路径找到,然后配置上就行了。具体可以跟着我一起去操作一下。
注意:我的用的是Chrome谷歌浏览器。
1:打开谷歌浏览器
2:在搜索框直接输入chrome://version/,然后这里会打开很多路径,我们找到找到“个人资料路径”
3:找到路径复制,把\Default删除。删除之后是xxxx\User Data
4:然后写下面的三行代码就行了。
option = webdriver.ChromeOptions() #复制个人资料路径后去掉\Default
option.add_argument(r'--user-data-dir=xxxxx\User Data')
driver = webdriver.Chrome(chrome_options=option)
5最后我们打开谷歌浏览器,把刚刚的网址登录一遍,然后再关闭谷歌浏览器(注意:运行代码之前必须关闭浏览器,不然会报错的。)
运行代码,我们会发现打开的网址用的缓存都是我们本地缓存,只要登录过一遍的网页,他就会不需要重复登录。
上面是比较常用的绕开登录问题的解决。有兴趣学selenium的话,可以关注公众号:诗一样的代码,留言给我,我教你系统地学。