无头浏览器无法重定向。

10
我们正在使用无头模式的Chrome进行应用测试。我们有一个页面,在无头模式下拒绝重定向,但在非无头模式下可以完美地重定向。响应头包含要重定向到的URL,返回了302状态码。
当在无头模式下运行时,是什么导致Chrome表现不同?是否有任何日志记录可以帮助我确定为什么重定向不能按预期工作?
编辑:找到了更多信息。看起来我无法重定向到具有错误证书的站点。当在无头模式下运行Chrome时,如何处理ERR_CERT_AUTHORITY_INVALID?

1
你解决了这个问题吗?我们遇到了同样的问题。 - Mark Micallef
我认为我正在遇到相同的问题。你知道如何调试或至少获取一些更好的日志来找出发生了什么吗? - karlos
要让 Chrome-headless 发送更多的调试信息,可以传递以下选项: --log-level=0 --enable-logging --v=1Chrome/Chromium headless 的错误跟踪器无法接受 --ignore-certificate-errors 标志: https://bugs.chromium.org/p/chromium/issues/detail?id=721739 - karlos
我所做的是在无头测试中禁用HTTPS。 - Player1
我尝试了--ignore-certificate-errors,但对我没有用。由于OAUTH2,我的网页重定向到另一个登录页面。这个问题有任何更新和修复吗? - snikt
@snikt,你能解释一下问题出在哪里吗?因为OP的问题是关于“不重定向”的。而解决方案是将其重定向到认证页面。 - GensaGames
2个回答

3

截至目前,看起来--enable-features=NetworkService可以解决无头模式下自签名证书的问题。


这个可行!我们必须在Docker运行命令中添加--shm-size=1g,否则会出现selenium.common.exceptions.WebDriverException: Message: unknown error: session deleted because of page crash的错误。 - oschlueter
我尝试了--ignore-certificate-errors,但对我没有用。由于OAUTH2,我的网页重定向到另一个登录页面。这个问题有任何更新和修复吗? - snikt

3
我遇到了同样的问题,正如你所指出的,这种情况发生在具有错误证书的站点上。在原始帖子发布时,传递--ignore-certificate-errors标志无法解决问题,因为存在一个错误。以下是一些选项,可以向chrome-headless发送更多调试信息:
--log-level=0 --enable-logging --v=1
chrome/chromium headless的错误跟踪器不接受--ignore-certificate-errors标志:
bugs.chromium.org/p/chromium/issues/detail?id=721739 – karlos Dec 7 '17 at 20:15
现在阅读此文的任何人都应该知道,该错误最近已被修补:
https://chromium.googlesource.com/chromium/src.git/+/c8f0691b18dc5d941d5b6b3c67a483da02400670
使用headless chrome访问具有错误证书的站点时,--ignore-certificate-errors标志应允许重定向发生。

我尝试了--ignore-certificate-errors,但对我没有用。由于OAUTH2,我的网页重定向到另一个登录页面。这个问题有任何更新和修复吗? - snikt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接