2016-09-07 110 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 - 如果我的回答對你有幫助,你能幫我接受嗎? –