selenium启动ie配置,实现inprivate浏览,禁止ie缓存

selenium 专栏收录该内容
1 篇文章 0 订阅

问题提出:

在 IE8中:例如有多个case运行,

第一次一旦登陆成功之后,

其他几个错误验证的case,去执行访问同一个页面的话,但是cookie中已经记录了成功登录,所以那几个错误验证的case是跑不通的。

但是,如果在订单提交case的时候,又需要用到用户正确登录的cookie,目的不用登录就直接提交订单了。

为了屏蔽ie缓存cookie的影响,可以通过以下方式实现:


总体思路的话是:

开启InPrivate阻止IE浏览器存储会话的数据,Cookie、Internet临时文件、历史记录等等。

1.1启动driver前添加ie属性配置:
以下两个属性同时开启
DesiredCapabilities caps =DesiredCapabilities.internetExplorer();
caps.setCapability(InternetExplorerDriver.IE_SWITCHES,"-private");
caps.setCapability(InternetExplorerDriver.FORCE_CREATE_PROCESS,true);

this.driver = newInternetExplorerDriver(caps);

1.2同时再修改ie注册表:

在HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main添加一项:



如果不修改的话,会报错:org.openqa.selenium.remote.SessionNotFoundException:Unexpected error launching Internet Explorer. Unable to use CreateProcess()API. To use CreateProcess() with Internet Explorer 8 or higher, the value ofregistry setting in HEKY_CURRENT_USER\Software\Microsoft\InternetExplorer\Main\TabProcGrowth must be '0'

1.3最终运行效果的话就是:
1.3.1:


1.3.2:

在浏览器磁盘缓存目录中,也不会生成该域下的cookie 
所有的case不会再受ie缓存的影响,相当于屏蔽了在本地生成cookie信息


1.3.3:

如果需要有其他case,比如订单提交时,需要利用登录时产生的cookie信息,
可以利用一个properties配置文件,在中间转储cookie
在登陆的时候,向配置文件写cookie,在提交订单的时候,从配置文件里拿cookie就可以了。


1.4两个参考的链接:关于ie中设置这个属性意义的

http://learn-automation.com/selenium-webdriver-tutorial-for-beginners/
http://www.thewindowsclub.com/pdf-files-will-open-internet-explorer





  • 0
    点赞
  • 0
    评论
  • 2
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

xiaosuer666

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值