selenium IE保护模式报错解决方案(使用python写注册表)

selenium IE保护模式报错解决方案

JAVA:https://www.cnblogs.com/feifeidxl/p/4551363.html

java的处理可以参考此博客,实践可行,使用的selenium版本为3.141,ie版本为11.630.19041.0

Python:

官方文档中https://www.selenium.dev/documentation/webdriver/capabilities/internet_explorer/ 提供了一个options的选项,但是个人测试发现没有起作用,仍然会报Internet Explorer.Protected Mode must be set to the same value(enabled or disabled) for all zones.
在这里插入图片描述

注意 需要使用selenium 3.x+以上的版本,低版本的selenium对ie还没有支持options。

因此在python中想要解决此问题,只能老老实实的修改ie浏览器的安全模式。自己测试时直接打开浏览器修改即可,但是当有很多台windows需要修改时,这样就太麻烦了。

因此可以使用python直接修改注册表的值,来达到手动修改的效果,代码如下:

from winreg import *

def Enable_Protected_Mode():
    """
    # 0 is the Local Machine zone
    # 1 is the Intranet zone
    # 2 is the Trusted Sites zone
    # 3 is the Internet zone
    # 4 is the Restricted Sites zone
    # CHANGING THE SUBKEY VALUE "2500" TO DWORD 0 ENABLES PROTECTED MODE FOR THAT ZONE.
    # IN THE CODE BELOW THAT VALUE IS WITHIN THE "SetValueEx" FUNCTION AT THE END AFTER "REG_DWORD".
    """
    try:
        keyVal = r'Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1' # 这里的1,2,3,4分别对应安全模式中的四个选项,只要依次将四个选项全部操作一遍即可。
        key = OpenKey(HKEY_CURRENT_USER, keyVal, 0, KEY_ALL_ACCESS)
        SetValueEx(key, "2500", 0, REG_DWORD, 0)
    except Exception:
        print("Failed to enable protected mode")

这样就只需在使用selenium启动ie浏览器前先使用上述代码修改ie浏览器的安全模式就可以了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值