Python中Selenium操控IE报错KeyError: 'status'求助
解决Selenium操控IE浏览器时出现KeyError: 'status'的问题
我来帮你分析下这个问题,你遇到的KeyError: 'status'通常是版本不兼容或者IE浏览器配置不正确导致的,结合你的环境信息,给你几个针对性的解决方案:
1. 确保Selenium与IEDriverServer版本匹配
你的Selenium版本是2.53.2(2016年的老旧版本),而IEDriverServer用的是3.9版本,两者版本差距过大,兼容性必然出问题。建议你二选一调整:
- 降级IEDriverServer到和Selenium 2.53.2匹配的版本(比如IEDriverServer 2.53.1,与Selenium主版本保持一致)
- 升级Selenium到3.x系列(Python 2.7最高支持Selenium 3.141.0),和IEDriverServer 3.9版本匹配
2. 修正IE浏览器的关键设置
IE对Selenium的支持比较苛刻,必须调整以下核心设置:
- 统一所有区域的保护模式:打开IE浏览器,点击
工具→Internet选项→安全标签,确保Internet、本地Intranet、受信任的站点、受限制的站点这四个区域的启用保护模式复选框状态完全一致(要么全勾选,要么全不勾选) - 设置缩放级别为100%:点击IE右上角的缩放按钮,确保缩放比例是默认的100%,Selenium要求IE缩放必须为默认值
- 匹配IEDriver与IE的位数:Win8系统自带32位和64位IE,你用的是32位IEDriverServer,要确保启动的是32位IE(任务管理器中进程名为
iexplore.exe,64位会标注*32),若用64位IE则需更换为64位IEDriverServer
3. 修正代码中的路径转义问题
你代码里的路径"C:\Python27\IEDriverServer.exe"存在转义字符解析错误,Python会把\P当成无效转义序列,导致路径识别失败。可以改成两种写法:
- 使用原始字符串:
r"C:\Python27\IEDriverServer.exe" - 使用双反斜杠:
"C:\\Python27\\IEDriverServer.exe"
修正后的代码示例:
from selenium import webdriver driver = webdriver.Ie(r"C:\Python27\IEDriverServer.exe")
4. 临时绕过保护模式(仅适合测试场景)
如果你暂时不想修改IE的保护模式设置,可以通过配置Capabilities忽略该检查,代码如下:
from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities caps = DesiredCapabilities.INTERNETEXPLORER.copy() caps['ignoreProtectedModeSettings'] = True driver = webdriver.Ie(executable_path=r"C:\Python27\IEDriverServer.exe", desired_capabilities=caps)
注意:这种方法存在安全风险,不推荐长期使用。
按照上面的步骤逐一排查,应该能解决你遇到的KeyError: 'status'问题。
内容的提问来源于stack exchange,提问作者Ossama
相关产品推荐
相关产品推荐

