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

Selenium C#传递driver.PageSource到HTML Agility Pack报路径过长怎么解决

问题原因

你调用了Html Agility Pack的Load()方法,这个方法的入参要求是本地HTML文件的路径,而你传入的driver.PageSource是完整的HTML字符串,方法会把整个HTML内容当成文件路径去解析,自然会触发路径过长的报错。Python的BeautifulSoup默认支持直接传入HTML字符串,所以相同逻辑不会报错。

解决方案

把报错行的Load()方法替换为专门用于加载HTML字符串的LoadHtml()方法即可:

// 原来的错误写法
// htmlDoc.Load(driver.PageSource);
// 修改后的正确写法
htmlDoc.LoadHtml(driver.PageSource);
可选优化建议

你代码里的Thread.Sleep(3000)是固定等待,容易受网络波动影响导致页面还没加载完就执行后续操作,可以替换成Selenium的显式等待,逻辑更稳定:

// 等待搜索结果加载完成,判断目标元素出现
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
wait.Until(d => d.FindElements(By.ClassName("grid-address")).Count > 0);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:45:03