Selenium grid 403禁止代理错误

时间:2016-09-07 08:53:10

标签: javascript selenium amazon-ec2 selenium-grid

我一直在本地机器上使用Selenium webdriver测试网页。 但是,我想在Windows EC2实例上执行此操作。我能够确定我们可以在EC2机器上使用Selenium grid2。因此,在启动并向节点注册节点后,我在eclipse中执行JavaScript时遇到以下错误。

我使用了以下命令:

启动中心: java -jar selenium-server-standalone-2.46.0.jar -role hub

将节点注册到集线器: java -jar selenium-server-standalone-2.46.0.jar -role webdriver -hub http://:4444 / grid / register / -port 5555

我的代码如下:

package com.example.grid;
import java.net.MalformedURLException;
import java.net.URL;
import org.openqa.selenium.Platform;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
public class seleniumgridclass {    
    //Remote webdriver instance
    public static RemoteWebDriver driver;
    public static void main(String[] args) throws MalformedURLException {

        DesiredCapabilities cap = new DesiredCapabilities().firefox();
        cap.setPlatform(Platform.VISTA);
        cap.setBrowserName("firefox");      
        driver = new RemoteWebDriver(new URL("http://<ip addr of node>:5555/wb/hub"),cap);      
        driver.navigate().to("http://www.google.com");      
        driver.findElementByName("q").sendKeys("execute automation");       
        driver.findElementByName("btnG").click();       
    }
}

我遇到以下错误:

Exception in thread "main" org.openqa.selenium.UnsupportedCommandException: <html>
<head>
<title>Error 403 Forbidden for Proxy</title>
</head>            
<body>
<h2>HTTP ERROR: 403</h2><pre>Forbidden for Proxy</pre>
<p>RequestURI=/wb/hub/session</p>
<p><i><small><a href="http://jetty.mortbay.org">Powered by Jetty://</a></small></i></p>                                               

</body>
</html>
Command duration or timeout: 218 milliseconds
Build info: version: '2.46.0', revision: '87c69e2', time: '2015-06-04 16:17:10'
System info: host: 'WIN-Y636DAAY2OH', ip: '10.0.1.226', os.name: 'Windows Server 2008', os.arch: 'x86', os.version: '6.0', java.version: '1.8.0_101'
Driver info: org.openqa.selenium.remote.RemoteWebDriver
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:204)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:156)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:605)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:242)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:128)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:155)
    at com.example.grid.seleniumgridclass.main(seleniumgridclass.java:26)

请向我提供解决代理禁止403错误的指南。

1 个答案:

答案 0 :(得分:1)

问题是由于您的代码中出现了拼写错误 请更改

driver = new RemoteWebDriver(new URL("http://<ip addr of node>:5555/wb/hub"),cap);

driver = new RemoteWebDriver(new URL("http://<ip addr of node>:5555/wd/hub"),cap);

请注意我已将wb更改为wd

此外,我相信您应该指向您的Hub而不是您节点的IP地址,因为这样会破坏拥有Hub并充分利用其将测试路由到特定节点的能力(您是直接命中一个节点)