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

使用NUnit3并行执行IE11自动化测试时遇Error 404问题求助

NUnit3并行测试IE11时出现404错误的排查与解决

从你的测试代码和问题描述来看,核心问题是并行测试启动后Grid节点能打开浏览器但后续执行报错404,这通常和Selenium Grid的配置、NUnit并行策略或者IE驱动的环境设置有关,我整理了几个最可能的遗漏点:

1. 错误直接连接Grid节点而非Hub

你的代码里直接把RemoteWebDriver指向了节点端口http://127.0.0.1:4422/wd/hub/,但并行测试的正确做法是连接Grid Hub的地址(默认端口是4444),由Hub负责把测试请求分配到空闲的节点上。如果直接连节点,当节点的maxSession默认是1时,第二个并行测试请求就会因节点无可用会话而返回404错误。

修改RemoteWebDriver的目标URL为Hub地址:

_webdriver = new RemoteWebDriver(new Uri("http://127.0.0.1:4444/wd/hub/"), caps.ToCapabilities());

同时启动节点时要指定Hub的注册地址,比如:

java -jar selenium-server-standalone-xxx.jar -role node -hub http://localhost:4444/grid/register -port 4422 -maxSession 2

这里的-maxSession 2是允许节点同时处理2个会话,适配你的并行需求。

2. 未配置NUnit全局并行策略

仅仅给测试方法加[Parallelizable(ParallelScope.Self)]还不够,需要在NUnit的配置文件(nunit3.config)中明确开启并行支持,确保NUnit能正确调度并行测试:

<nunit>
  <test-run parallel="true" workers="2">
    <assembly parallelize="true" scope="Self"/>
  </test-run>
</nunit>

workers="2"对应你启用的Grid节点数量或期望的并行线程数。

3. Selenium版本兼容性问题

必须确保以下组件版本完全匹配:

  • Grid Hub和所有节点使用的Selenium Server版本一致
  • IEDriverServer的版本与IE11浏览器版本、Selenium Server版本兼容
    版本不匹配会导致节点与Hub之间的通信异常,出现看似无关的404错误。

4. IE浏览器的必要环境配置

IE11运行Selenium测试有几个强制要求,哪怕你在代码里设置了IgnoreZoomLevel,也需要检查:

  • 所有IE安全区域的保护模式级别设置为相同(全开启或全关闭)
  • 确保IEDriverServer的路径在节点启动时通过参数指定:
    java -Dwebdriver.ie.driver="C:\path\to\IEDriverServer.exe" -jar selenium-server-standalone-xxx.jar -role node ...
    

5. 节点注册的浏览器参数是否正确

启动IE节点时,要明确指定浏览器名称和版本,避免Hub无法识别节点的浏览器类型:

java -jar selenium-server-standalone-xxx.jar -role node -hub http://localhost:4444/grid/register -browser browserName=internet explorer,version=11,platform=WINDOWS -port 4422 -maxSession 2

按照以上步骤逐一排查,应该能解决你遇到的404错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:32:00