You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Selenium 4.18.0在IE浏览器中遇evaluate方法不支持错误求助

解决IE浏览器Selenium XPath定位报错"Object doesn't support property or method 'evaluate'"

问题背景

使用IE浏览器进行Web应用自动化测试,Selenium版本4.18.0,Python3.12,页面加载完成后定位元素时触发以下错误:

selenium.common.exceptions.InvalidSelectorException: Message: Unable to locate an element with the xpath expression //div[@id='index_logo']/following-sibling::div/form because of the following error:
TypeError: Object doesn't support property or method 'evaluate';

已尝试添加等待、排除Iframe和Shadow DOM影响,问题仍存在。

解决方案

1. 用CSS选择器替代XPath

IE浏览器对CSS选择器的支持远优于XPath,替换后可避免原生XPath引擎的兼容性问题。

修改选择器定义:

# CSS选择器
cpDvForm = "div#index_logo + div form"
cpDvUser = "input#username"
cpDvPass = "input#password"
cpDvLanRadio = "input#net_lan"
cpDvLogin = "a[onclick='login()']"

更新定位代码:

form = d.find_element(By.CSS_SELECTOR, cpDvForm)
form.find_element(By.CSS_SELECTOR, cpDvUser).clear()
form.find_element(By.CSS_SELECTOR, cpDvUser).send_keys('user')
form.find_element(By.CSS_SELECTOR, cpDvPass).send_keys('pass')
form.find_element(By.CSS_SELECTOR, cpDvLanRadio).click()
form.find_element(By.CSS_SELECTOR, cpDvLogin).click()

2. 配置IE Options强制使用Selenium XPath引擎

IE默认使用原生XPath引擎,兼容性差。通过配置启用Selenium自带的XPath引擎,同时禁用原生事件避免冲突:

options = webdriver.IeOptions()
# 启用Selenium XPath引擎
options.xpath_enabled = True
# 禁用原生事件
options.native_events = False
# 可选:强制页面使用IE9及以上文档模式
options.add_argument("--ie.documentMode=9")
# 可选:解决IE进程启动相关问题
options.add_argument("--ie.forceCreateProcessApi")
options.add_argument("--ie.usePerProcessProxy")

d = webdriver.Ie(options=options)
d.get(url)

3. 修正相对XPath的使用方式

当前代码中在父元素form下使用绝对XPath(//input[@id='username'])会从根节点重新查找,IE下易触发兼容性问题。改为相对路径(以.//开头),从当前父元素开始定位:

# 修正为相对XPath
cpDvUser = ".//input[@id='username']"
cpDvPass = ".//input[@id='password']"
cpDvLanRadio = ".//input[@id='net_lan']"
cpDvLogin = ".//a[@onclick='login()']"

4. 检查并调整IE浏览器文档模式

确保页面文档模式为IE9及以上:

  • 打开IE浏览器,按F12打开开发者工具
  • 在"文档模式"下拉菜单中选择IE9/IE10/IE11
  • 若需代码强制设置,可在IE Options中添加--ie.documentMode=9参数

内容的提问来源于stack exchange,提问作者subham chomal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 12:44:58