2016-09-07 109 views
1

我一直在我的本地机器上使用Selenium webdriver测试网页。但是,我想在Windows EC2实例上执行此操作。我能够确定我们可以在EC2机器上使用Selenium grid2。因此,在启动和注册节点到集线器后,我在Eclipse中执行JavaScript时遇到以下错误。硒网格403禁止代理错误

我已经使用下面的命令:

要启动毂: Java的罐子硒 - 服务器 - 独立-2.46.0.jar -role毂

要注册节点到轮毂: Java的罐子硒 - 服务器 - 独立-2.46.0.jar -role的webdriver -hub HTTP://:4444 /格/注册/ -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

问题是由于代码中的笔误 请更改

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);

注意我是如何改变了wbwd

另外我相信你应该指着你的集线器,而不是在你的节点的IP地址,因为这种方式击败了集线器的整个目标,并利用其将测试路由到特定节点的能力(你直接击中一个节点)

+0

谢谢先生.. – Roopa

+0

@Roopa - 如果我的回答对你有帮助,你能帮我接受吗? –