我正在Firefox中运行Selenium自动化代码,并收到以下错误:io.github.bonigarcia.wdm.WebDriverManagerException: A response error is detected: HTTP/1.1 403 Forbidden
在Chrome浏览器中可以正常工作。
FireFox版本:70.0.1(64位)
OS:Mac OS
io.github.bonigarcia.wdm.WebDriverManagerException: A response error is detected: HTTP/1.1 403 Forbidden
...已观察到某些托管在GitHub上的二进制文件(适用于Opera和Firefox)。
根据WebDriverManagerException: A response error is detected: HTTP/1.1 403 Forbidden中的讨论,Boni García将此问题称为webdrivermanager中的已知问题。在Known issues部分中记录了以下内容:
某些二进制文件(适用于Opera和Firefox)托管在GitHub上。当WebDriverManager发出多个连续请求时,GitHub服务器将返回HTTP 403错误响应,如下所示:
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: https://api.github.com/repos/operasoftware/operachromiumdriver/releases at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1840) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254) at io.github.bonigarcia.wdm.BrowserManager.openGitHubConnection(BrowserManager.java:463) at io.github.bonigarcia.wdm.OperaDriverManager.getDrivers(OperaDriverManager.java:55) at io.github.bonigarcia.wdm.BrowserManager.manage(BrowserManager.java:168)
还有一段时间:
Caused by: java.io.IOException: Server returned HTTP response code: 403 for URL: https://api.github.com/repos/mozilla/geckodriver/releases at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1840) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254) at io.github.bonigarcia.wdm.FirefoxDriverManager.getDrivers(FirefoxDriverManager.java:61) at io.github.bonigarcia.wdm.BrowserManager.manage(BrowserManager.java:163)
可以通过发送经过身份验证的请求来解决此问题。该过程如下:在您的GitHub帐户中创建一个令牌/秘密对。
- 告诉WebDriverManager此对令牌/秘密的值。为此,您应该使用配置键
wdm.gitHubTokenName
和wdm.gitHubTokenSecret
。您可以将它们作为命令行Java参数传递,如下所示:
-Dwdm.gitHubTokenName=<your-token-name> -Dwdm.gitHubTokenSecret=<your-token-secret>
...或作为环境变量(例如在Travis CI中),如下所示:
WDM_GITHUBTOKENNAME=<your-token-name> WDM_GITHUBTOKENSECRET=<your-token-secret>