使用chrome或firefox的已存在的cookie访问网站
2017-11-09 16:54
477 查看
我们在编写自动化测试中,经常会遇到讨厌的验证码。这些验证码倒也不是没法识别,我们可以把网页截图,再精确定位到验证码的图片位置,把之存储,然后再运用一堆方法去达到识别的目的。但是,这真值得么?对于简单的验证码,用程序可以达到较大的成功率,但是对于那些噪点非常多、且上下参差不齐的验证码,就不太好识别了。
因此,我们可以换个角度来思考:如果我们在跑自动化程序之前,已经登录了某个网站,那么,我们就可以跳过输入用户名、密码以及验证码的环节,直接读取浏览器中已经保存的cookie来访问网站,就可以顺利进去了。由于selenium启动某个浏览器时,它启动的是一个全新的浏览器,没有带任何cookie,所以我们必须添加一些代码,来让程序加载这些cookie。
好,那么,我们分别用chrome和firefox来操作,看看对应的实际代码是什么。
这里使用python实现。
一、对应chrome的实现
[python]
view plain
copy
#!/usr/bin/python
# -*- coding: utf-8 -*-
from selenium import webdriver
import time
import os
profile_dir=r"C:\Users\yan\AppData\Local\Google\Chrome\User Data" # 对应你的chrome的用户数据存放路径
chrome_options=webdriver.ChromeOptions()
chrome_options.add_argument("user-data-dir="+os.path.abspath(profile_dir))
browser=webdriver.Chrome(chrome_options=chrome_options)
browser.maximize_window()
browser.get("http://www.baidu.com")
以上代码即可实现打开chrome时载入cookie来执行后续操作。例如,你已经登录了百度,那么这时打开浏览器,就是已登录状态。否则,你就慢慢识别百度的验证码吧^_^
[python]
view plain
copy
browser=webdriver.Chrome(chrome_options=chrome_options)
这句的参数就是添加了用户数据,如果没有参数,则是启动一个全新的不带cookie的浏览器。
二、对应firefox的实现
[python]
view plain
copy
#!/usr/bin/python
# -*- coding: utf-8 -*-
from selenium import webdriver
import time
import os
fp=webdriver.FirefoxProfile(r'C:\Users\yan\AppData\Roaming\Mozilla\Firefox\Profiles\btnc8mzb.default')
browser=webdriver.Firefox(fp)
browser.maximize_window()
browser.get("http://www.baidu.com")
与上面类似。
因此,我们可以换个角度来思考:如果我们在跑自动化程序之前,已经登录了某个网站,那么,我们就可以跳过输入用户名、密码以及验证码的环节,直接读取浏览器中已经保存的cookie来访问网站,就可以顺利进去了。由于selenium启动某个浏览器时,它启动的是一个全新的浏览器,没有带任何cookie,所以我们必须添加一些代码,来让程序加载这些cookie。
好,那么,我们分别用chrome和firefox来操作,看看对应的实际代码是什么。
这里使用python实现。
一、对应chrome的实现
[python]
view plain
copy
#!/usr/bin/python
# -*- coding: utf-8 -*-
from selenium import webdriver
import time
import os
profile_dir=r"C:\Users\yan\AppData\Local\Google\Chrome\User Data" # 对应你的chrome的用户数据存放路径
chrome_options=webdriver.ChromeOptions()
chrome_options.add_argument("user-data-dir="+os.path.abspath(profile_dir))
browser=webdriver.Chrome(chrome_options=chrome_options)
browser.maximize_window()
browser.get("http://www.baidu.com")
以上代码即可实现打开chrome时载入cookie来执行后续操作。例如,你已经登录了百度,那么这时打开浏览器,就是已登录状态。否则,你就慢慢识别百度的验证码吧^_^
[python]
view plain
copy
browser=webdriver.Chrome(chrome_options=chrome_options)
这句的参数就是添加了用户数据,如果没有参数,则是启动一个全新的不带cookie的浏览器。
二、对应firefox的实现
[python]
view plain
copy
#!/usr/bin/python
# -*- coding: utf-8 -*-
from selenium import webdriver
import time
import os
fp=webdriver.FirefoxProfile(r'C:\Users\yan\AppData\Roaming\Mozilla\Firefox\Profiles\btnc8mzb.default')
browser=webdriver.Firefox(fp)
browser.maximize_window()
browser.get("http://www.baidu.com")
与上面类似。
相关文章推荐
- selenium之python自动化测试系列:使用chrome或firefox的已存在的cookie访问网站
- python selenium使用chrome/firefox的已存在的cookie访问网站
- selenium之python自动化测试系列:使用chrome或firefox的已存在的cookie访问网站
- selenium之python自动化测试系列:使用chrome或firefox的已存在的cookie访问网站
- 绕过验证码,使用chrome的已存在的cookie访问网站
- BX2001: IE 支持使用 window.clipboardData 访问系统剪贴板,Chrome 和 Safari 中存在类似的 Clipboard 对象但尚未实现,Firefox 和 Opera 不支持这类对象
- javaWeb 使用cookie显示上次访问网站时间
- 使用Tor+Firefox+FoxyProxy访问被和谐的网站
- php使用cookie显示用户上次访问网站日期的方法
- 使用cookie模拟网站显示客户机上次访问的商品
- 使用cookie记录最后一次用户访问网站的时间
- 火狐无法访问本机IIS部署的网站,弹出:此地址使用了一个通常用于网络浏览以外目的的端口.出于安全原因,Firefox 取消了该请求 的解决办法
- php使用cookie显示用户上次访问网站日期的方法
- jsp中使用Cookie统计网站访问次数
- VB.net使用httpWebRequest访问带cookie的网站时如何传递cookie值
- php使用cookie显示用户上次访问网站日期的方法
- Chrome 和 Firefox 浏览器可以访问微软更新目录网站啦!
- 七种缓存使用武器为网站应用和访问加速
- 使用net classes访问其他网站内容
- 使用netclasses访问其他网站内容