Python保护设置IE

时间:2013-07-16 12:56:29

标签: python internet-explorer selenium selenium-webdriver

我在IE using Selenium with python中自动执行保护设置时遇到问题。

我找到了一个自动化java设置的解决方案,但是当我把它改成python时它没有用。

我尝试了以下::

from selenium import webdriver

caps=webdriver.DesiredCapabilites.INTERNETEXPLORER
caps['INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS']=True
driver=webdriver.Ie(caps)

这给出了给出的论据的错误。

当我使用driver = webdriver.Ie()时 它表示所有区域的保护模式设置必须相同。

任何人都可以帮我在python中使用selenium自动化这个东西。

4 个答案:

答案 0 :(得分:5)

根据documentation,在python-selenium中,你应该使用被调用的设置 ignoreProtectedModeSettings

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

caps = DesiredCapabilities.INTERNETEXPLORER
caps['ignoreProtectedModeSettings'] = True

driver = webdriver.Ie(capabilities=caps)

答案 1 :(得分:1)

在某些情况下,所需的功能无效。以下是使用winreg从注册表更改保护设置的方法。

Microsoft Scripting Runtime

答案 2 :(得分:0)

如果功能模式不起作用,则有另一种选择。

from selenium import webdriver
from selenium.webdriver.ie.options import Options

ie_options = Options()
ie_options.ignore_protected_mode_settings = True
driver = webdriver.Ie(options=ie_options)
driver.get('http://www.google.com')

答案 3 :(得分:0)

这是Dinesh代码的另一种变体,用于禁用注册表中的受保护模式。它还会关闭连接。

只需将此代码放在您的硒自动化代码之前,它将为浏览器做好准备。

import winreg

def set_reg(REG_PATH, name, value):
    try:
        winreg.CreateKey(winreg.HKEY_CURRENT_USER, REG_PATH)
        with winreg.OpenKey(winreg.HKEY_CURRENT_USER, REG_PATH, 0, winreg.KEY_WRITE) as registry_key:
            winreg.SetValueEx(registry_key, name, 0, winreg.REG_DWORD, value)
            winreg.CloseKey(registry_key)
            return True
    except WindowsError:
        return False

for i in range(1,5): set_reg(r"Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\\" + str(i),'2500', 3)

由Mash和icc97改编​​自该主题的最高答案: python script to read and write a path to registry