我一直在本地机器上使用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错误的指南。
答案 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并充分利用其将测试路由到特定节点的能力(您是直接命中一个节点)