如何阻止 Selenium 中的 Invalid Length 警告发生?

Posted

技术标签:

【中文标题】如何阻止 Selenium 中的 Invalid Length 警告发生?【英文标题】:How do I stop the Invalid Length warning in Selenium from occuring? 【发布时间】:2010-09-22 16:42:23 【问题描述】:

有时在运行 selenium 时,它会显示类似于以下内容的消息:

警告 - 长度无效:Content-Length=798242 写入=8192

然后 Selenium 停止响应。自动化下的网站在 ASP.NET 上运行,并通过 IIS 提供服务。

如何防止 Selenium 因任何错误而停止?

【问题讨论】:

【参考方案1】:

网址只能这么长。 RFC 中定义了硬性限制。我怀疑您发出的命令会导致 URL 超出这些限制。您需要调试 Selenium 脚本并找出导致问题的原因,而不是抑制这种症状。

【讨论】:

【参考方案2】:

Selenium Server 抱怨的问题是请求的页面包含 798242 字节的 Content-Length 标头,但 Selenium 仅收到 8192 字节的数据。我发现当您的某个网页手动写入响应流而不是使用 ASP.NET 生命周期时,通常会发生这种情况。

寻找这样的代码:

Response.ClearContent();
string data = GetSomeData();
Response.Write(data);
Response.Flush();
Response.Close();

您需要像这样添加 Content-Length 标头:

Response.AddHeader("Content-Length", data.Length.ToString());

所以你的代码应该是这样的:

Response.ClearContent();
string data = GetSomeData();
Response.AddHeader("Content-Length", data.Length.ToString());
Response.Write(data);
Response.Flush();
Response.Close();

【讨论】:

以上是关于如何阻止 Selenium 中的 Invalid Length 警告发生?的主要内容,如果未能解决你的问题,请参考以下文章

如何阻止 codeception/selenium 在断言失败时关闭浏览器窗口?

解决selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: invalid 'expir

Selenium2 + Python3.6实战:生成HTML测试报告 Invalid argument

Selenium2+Python3.6实战:读取xml文件,获得标签信息ExpatError: not well-formed (invalid token)

如何使用通过VPN工作的selenium webdriver访问应用程序?

线程“主”org.openqa.selenium.NoAlertPresentException 中的异常:没有打开警报