Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/320.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java webdriver的新会话请求应包含位置标头或';应用程序/json;字符集=UTF-8';会话ID为的响应主体_Java_Selenium_Session_Selenium Webdriver_Selenium Grid - Fatal编程技术网

Java webdriver的新会话请求应包含位置标头或';应用程序/json;字符集=UTF-8';会话ID为的响应主体

Java webdriver的新会话请求应包含位置标头或';应用程序/json;字符集=UTF-8';会话ID为的响应主体,java,selenium,session,selenium-webdriver,selenium-grid,Java,Selenium,Session,Selenium Webdriver,Selenium Grid,我正在尝试使用网格运行SeleniumJava测试。我的集线器位于aws windows实例中,节点是我的本地计算机。我能够使用wifi连接上的端口转发将本地系统连接到aws实例VM。但在运行Java脚本时会出现以下错误 使用的集线器命令: java-jar-selenium-server-standalone-3.14.0.jar-角色中心-端口80 节点连接命令: java-Dwebdriver.chrome.driver=“chromedriver.exe”-jar selenium-se

我正在尝试使用网格运行SeleniumJava测试。我的集线器位于aws windows实例中,节点是我的本地计算机。我能够使用wifi连接上的端口转发将本地系统连接到aws实例VM。但在运行Java脚本时会出现以下错误

使用的集线器命令:

java-jar-selenium-server-standalone-3.14.0.jar-角色中心-端口80

节点连接命令:

java-Dwebdriver.chrome.driver=“chromedriver.exe”-jar selenium-server-standalone-3.14.0.jar-角色节点-hubhttp://3.21.32.100:80/grid/register -远程主机http://asagta-62417.portmap.io:62417 -端口4596

TestNg测试

public class TestClass
{
   WebDriver driver;
   String baseURL, nodeURL;
@BeforeTest
public void setUp() throws MalformedURLException {
         System.setProperty("webdriver.chrome.driver", "jars/chromedriver.exe");
         baseURL = "http://demo.guru99.com/test/guru99home/";
         nodeURL = "http://3.21.32.100:80/wd/hub";
         ChromeOptions options = new ChromeOptions();
         DesiredCapabilities capabilities = DesiredCapabilities.chrome(); 
         driver = new RemoteWebDriver(nodeURL,capabilities);
     }
     @AfterTest
     public void afterTest() {
         driver.quit();
     }
     @Test
     public void sampleTest() {
         driver.get(baseURL);
          if (driver.getPageSource().contains("MOBILE TESTING")) {
             Assert.assertTrue(true, "Mobile Testing Link Found");
         } 
          else {
             Assert.assertTrue(false, "Failed: Link not found");
         }
     }
}
堆栈跟踪:

org.openqa.selenium.WebDriverException: Error forwarding the new session new session request for webdriver should contain a location header or an 'application/json;charset=UTF-8' response body with the session ID.
Command duration or timeout: 46.30 seconds
Build info: version: '3.14.0', revision: 'aacccce0', time: '2018-08-02T20:13:22.693Z'
System info: host: 'EC2AMAZ-BPUIVPF', ip: '172.31.43.132', os.name: 'Windows Server 2019', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_261'
Driver info: driver.version: RemoteWebDriver
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:214)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166)
    at org.openqa.selenium.remote.JsonWireProtocolResponse.lambda$new$0(JsonWireProtocolResponse.java:53)
    at org.openqa.selenium.remote.JsonWireProtocolResponse.lambda$getResponseFunction$2(JsonWireProtocolResponse.java:91)
    at org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:122)
    at java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
    at java.util.Spliterators$ArraySpliterator.tryAdvance(Unknown Source)
    at java.util.stream.ReferencePipeline.forEachWithCancel(Unknown Source)
    at java.util.stream.AbstractPipeline.copyIntoWithCancel(Unknown Source)
    at java.util.stream.AbstractPipeline.copyInto(Unknown Source)
    at java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
    at java.util.stream.FindOps$FindOp.evaluateSequential(Unknown Source)
    at java.util.stream.AbstractPipeline.evaluate(Unknown Source)
    at java.util.stream.ReferencePipeline.findFirst(Unknown Source)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:125)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:73)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:548)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:212)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:130)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:143)
    at batool.TestClass.setUp(TestClass.java:23)
Caused by: org.openqa.grid.common.exception.GridException: Error forwarding the new session new session request for webdriver should contain a location header or an 'application/json;charset=UTF-8' response body with the session ID.
    at org.openqa.grid.web.servlet.handler.RequestHandler.process(RequestHandler.java:118)
    at org.openqa.grid.web.servlet.DriverServlet.process(DriverServlet.java:85)
    at org.openqa.grid.web.servlet.DriverServlet.doPost(DriverServlet.java:69)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at org.seleniumhq.jetty9.servlet.ServletHolder.handle(ServletHolder.java:860)
    at org.seleniumhq.jetty9.servlet.ServletHandler.doHandle(ServletHandler.java:535)
    at org.seleniumhq.jetty9.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
    at org.seleniumhq.jetty9.security.SecurityHandler.handle(SecurityHandler.java:548)
    at org.seleniumhq.jetty9.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
    at org.seleniumhq.jetty9.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
    at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
    at org.seleniumhq.jetty9.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
    at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
    at org.seleniumhq.jetty9.servlet.ServletHandler.doScope(ServletHandler.java:473)
    at org.seleniumhq.jetty9.server.session.SessionHandler.doScope(SessionHandler.java:1564)
    at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
    at org.seleniumhq.jetty9.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
    at org.seleniumhq.jetty9.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at org.seleniumhq.jetty9.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
    at org.seleniumhq.jetty9.server.Server.handle(Server.java:530)
    at org.seleniumhq.jetty9.server.HttpChannel.handle(HttpChannel.java:347)
    at org.seleniumhq.jetty9.server.HttpConnection.onFillable(HttpConnection.java:256)
    at org.seleniumhq.jetty9.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)
    at org.seleniumhq.jetty9.io.FillInterest.fillable(FillInterest.java:102)
    at org.seleniumhq.jetty9.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
    at org.seleniumhq.jetty9.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:247)
    at org.seleniumhq.jetty9.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:140)
    at org.seleniumhq.jetty9.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
    at org.seleniumhq.jetty9.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:382)
    at org.seleniumhq.jetty9.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:708)
    at org.seleniumhq.jetty9.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:626)
    at java.lang.Thread.run(Unknown Source)
org.openqa.selenium.WebDriverException:转发新会话时出错webdriver的新会话请求应包含位置标头或“application/json;charset=UTF-8'具有会话ID的响应主体。
命令持续时间或超时:46.30秒
构建信息:版本:'3.14.0',修订版:'aacccce0',时间:'2018-08-02T20:13:22.693Z'
系统信息:主机:'EC2AMAZ-BPUIVPF',ip:'172.31.43.132',os.name:'Windows Server 2019',os.arch:'amd64',os.version:'10.0',java.version:'1.8.0_261'
驱动程序信息:Driver.version:RemoteWebDriver
位于org.openqa.selenium.remote.ErrorHandler.CreateTrowable(ErrorHandler.java:214)
位于org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:166)
位于org.openqa.selenium.remote.JsonWireProtocolResponse.lambda$new$0(JsonWireProtocolResponse.java:53)
位于org.openqa.selenium.remote.JsonWireProtocolResponse.lambda$getResponseFunction$2(JsonWireProtocolResponse.java:91)
位于org.openqa.selenium.remote.ProtocolHandshake.lambda$createSession$0(ProtocolHandshake.java:122)
位于java.util.stream.ReferencePipeline$3$1.accept(未知源)
在java.util.Spliterators$ArraySpliterator.tryAdvance处(未知源)
位于java.util.stream.ReferencePipeline.forEachWithCancel(未知源)
位于java.util.stream.AbstractPipeline.copyIntoWithCancel(未知源)
位于java.util.stream.AbstractPipeline.copyInto(未知源)
位于java.util.stream.AbstractPipeline.wrapAndCopyInto(未知源)
位于java.util.stream.FindOps$FindOp.evaluateSequential(未知源)
位于java.util.stream.AbstractPipeline.evaluate(未知源)
位于java.util.stream.ReferencePipeline.findFirst(未知源)
位于org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:125)
位于org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:73)
位于org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:136)
位于org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:548)
位于org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:212)
位于org.openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java:130)
位于org.openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java:143)
位于batool.TestClass.setUp(TestClass.java:23)
原因:org.openqa.grid.common.exception.GridException:转发新会话时出错webdriver的新会话请求应包含位置标头或“application/json”;charset=UTF-8'具有会话ID的响应主体。
位于org.openqa.grid.web.servlet.handler.RequestHandler.process(RequestHandler.java:118)
位于org.openqa.grid.web.servlet.DriverServlet.process(DriverServlet.java:85)
位于org.openqa.grid.web.servlet.DriverServlet.doPost(DriverServlet.java:69)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
位于org.seleniumhq.jetty9.servlet.ServletHolder.handle(ServletHolder.java:860)
位于org.seleniumhq.jetty9.servlet.ServletHandler.doHandle(ServletHandler.java:535)
位于org.seleniumhq.jetty9.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
位于org.seleniumhq.jetty9.security.SecurityHandler.handle(SecurityHandler.java:548)
位于org.seleniumhq.jetty9.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
位于org.seleniumhq.jetty9.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190)
位于org.seleniumhq.jetty9.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
位于org.seleniumhq.jetty9.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)
位于org.seleniumhq.jetty9.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)
位于org.seleniumhq.jetty9.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)
位于org.seleniumhq.jetty9.servlet.ServletHandler.doScope(ServletHandler.java:473)
位于org.seleniumhq.jetty9.server.session.SessionHandler.doScope(SessionHandler.java:1564)
位于org.seleniumhq.jetty9.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)
位于org.seleniumhq.jetty9.server.handler.ContextHandler.doScope(ContextHandler.java:1155)
位于org.seleniumhq.jetty9.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
位于org.seleniumhq.jetty9.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
位于org.seleniumhq.jetty9.server.server.handle(server.java:530)
位于org.seleniumhq.jetty9.server.HttpChannel.handle(HttpChannel.java:347)
位于org.seleniumhq.jetty9.server.HttpConnection.onFillable(HttpConnection.java:256)
位于org.seleniumhq.jetty9.io.AbstractConnection$ReadCallback.successed(AbstractConnection.java:279)
位于org.seleniumhq.jetty9.io.FillInterest.fillable(FillInterest.java:102)
位于org.seleniumhq.jetty9.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)
位于org.seleniumhq.jetty9.util.thread.strategy.Eatwatyoukill.doProduce(eatwatyoukill.java:247)
位于org.seleniumhq.jetty9.util.thread.strategy.Eatwatyoukill.product(eatwatyoukill.java:140)
在