【问题标题】:Internet Explorer WebDriver doesn't start in the robot frameworkInternet Explorer WebDriver 未在机器人框架中启动
【发布时间】:2016-05-06 01:09:24
【问题描述】:

我在机器人框架中运行了一些测试,这些测试在 firefox 和 chrome 上运行良好,但在 Internet Explorer 上却不行。我阅读了其他建议将安全级别设置为受保护的帖子,我这样做了。

然后我收到以下错误:

WebDriverException: Message: Unexpected error launching Internet Explorer.
Mode must be set to the same value (enabled or disabled) for all zones.

webdriver.py-文件:

DEFAULT_TIMEOUT = 30
DEFAULT_PORT = 0
DEFAULT_HOST = None
DEFAULT_LOG_LEVEL = None
DEFAULT_LOG_FILE = None

class WebDriver(RemoteWebDriver):

    def __init__(self, executable_path='IEDriverServer.exe', capabilities=None,
                 port=DEFAULT_PORT, timeout=DEFAULT_TIMEOUT, host=DEFAULT_HOST,
                 log_level=DEFAULT_LOG_LEVEL, log_file=DEFAULT_LOG_FILE):
        self.port = port
        if self.port == 0:
            self.port = utils.free_port()
        self.host = host
        self.log_level = log_level
        self.log_file = log_file

        self.iedriver = Service(executable_path, port=self.port,
             host=self.host, log_level=self.log_level, log_file=self.log_file)

        self.iedriver.start()

        if capabilities is None:
            capabilities = DesiredCapabilities.INTERNETEXPLORER

        RemoteWebDriver.__init__(
            self,
            command_executor='http://localhost:%d' % self.port,
            desired_capabilities=capabilities)
        self._is_remote = False

    def quit(self):
        RemoteWebDriver.quit(self)
        self.iedriver.stop()

我是否也应该更改其他浏览器的安全级别?还是有其他方法可以解决这个问题?提前致谢!

【问题讨论】:

    标签: python internet-explorer selenium selenium-webdriver robotframework


    【解决方案1】:

    Not able to launch IE browser using Selenium2 (Webdriver) with Java

    以上内容应该回答了您的问题,您无需更改所有其他浏览器的安全级别。这不仅仅是启用受保护模式,这是您的问题,而是我想象的不同区域(即互联网/内联网)的安全级别不同

    【讨论】:

    • 当我在同一浏览器中将所有区域设置为同一级别时,这不起作用。我还需要 Python 的解决方案。谢谢
    • 最佳答案与语言无关,解决您问题的方法也是如此,完全与您的浏览器设置有关。保护模式的启用/禁用是否在所有区域中设置为与错误消息建议的值相同?我记得当错误为我抛出时,我有一些奇怪的行为,需要重新打开 IE 并设置几次值。
    • 所有区域的级别相同,但保护模式启用/禁用不相等!我必须请我的管理员更改此设置。
    • 希望您在这种情况下能够通过管理员对其进行排序,您能接受答案吗?
    【解决方案2】:

    我读到我需要 IgnoreProtectedModeSettings。

    from selenium import webdriver
    from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
    
    caps = DesiredCapabilities.INTERNETEXPLORER
    caps['ignoreProtectedModeSettings'] = True
    
    driver = webdriver.Ie(capabilities=caps)
    

    【讨论】:

      【解决方案3】:

      尝试将您的 URL 添加到 IE 浏览器的受信任站点中。这对我有用。我尝试了所有找到的选项,但最终将 URL 添加到受信任的站点有效。确保您添加了正确的 URL(我的意思是 https/http,在 IE 中手动打开的任何内容)。希望这会有所帮助。

      【讨论】:

        【解决方案4】:

        请按照以下步骤操作,这可能会解决您的大部分问题。如果您的浏览器有代理设置,请从第 1 步开始,否则您可以从第 3 步开始

        1.我在IE中启用了代理。

        2.在启动浏览器之前(即开始执行测试用例之前)设置环境变量no_proxy为127.0.0.1 例如:设置环境变量no_proxy 127.0.0.1

        3. 将所有 Internet 区域设置为相同级别(中到高)除了受限站点打开浏览器>工具>Internet 选项>安全选项卡

        4.在所有区域中启用“启用保护模式”

        【讨论】:

          猜你喜欢
          • 2016-01-17
          • 2019-10-25
          • 2019-03-29
          • 1970-01-01
          • 2021-05-02
          • 2012-08-04
          • 2021-06-10
          • 1970-01-01
          • 2019-04-19
          相关资源
          最近更新 更多