空手道 UI WebSockets - 无效握手响应 getStatus:403 禁止 addOptions:["--remote-allow-origins=*"] 不起作用

问题描述 投票:0回答:1

我正在尝试使用 Karate 执行一个简单的 UI 程序。以下是我的功能文件

Feature: UI Test validation

  Background:
    * configure driver = { type: 'chrome', addOptions: ['--no-sandbox', '--headless=new', '--remote-allow-origins=*', '--disable-extensions', '--disable-dev-shm-usage', '--disable-notifications' ], showDriverLog: true, showProcessLog: true, userDataDir: null }


@login
Scenario: Sample
Given driver <<url>>

我使用的是 karate-junit 0.9.6 版本和 google chrome 版本 117.0.5938.88。但我仍然面临以下执行方面的例外情况。我尝试了 karate UI webSockets 中建议的解决方法:获取无效的握手响应 getStatus: 403 Forbidden 但它不起作用

16:17:31.267 [nioEventLoopGroup-2-1] DEBUG c.i.k.netty.WebSocketClientHandler - websocket client connect failed: Invalid handshake response getStatus: 403 Forbidden
16:17:31.267 [ForkJoinPool-1-worker-3] ERROR c.intuit.karate.driver.DriverOptions - websocket client init failed: Invalid handshake response getStatus: 403 Forbidden
16:17:31.268 [ForkJoinPool-1-worker-3] ERROR com.intuit.karate - driver config / start failed: io.netty.karate.handler.codec.http.websocketx.WebSocketHandshakeException: Invalid handshake response getStatus: 403 Forbidden, options: {type=chrome, addOptions=["--no-sandbox","--headless=new","--remote-allow-origins=*","--disable-extensions","--disable-dev-shm-usage","--disable-notifications"], showDriverLog=true, showProcessLog=true, userDataDir=null, target=null}
java.lang.RuntimeException: io.netty.karate.handler.codec.http.websocketx.WebSocketHandshakeException: Invalid handshake response getStatus: 403 Forbidden
    at com.intuit.karate.netty.WebSocketClient.<init>(WebSocketClient.java:144)
    at com.intuit.karate.driver.DevToolsDriver.<init>(DevToolsDriver.java:115)
    at com.intuit.karate.driver.chrome.Chrome.<init>(Chrome.java:52)
    at com.intuit.karate.driver.chrome.Chrome.start(Chrome.java:101)
    at com.intuit.karate.driver.DriverOptions.start(DriverOptions.java:288)
    at com.intuit.karate.core.ScenarioContext.driver(ScenarioContext.java:1056)
    at com.intuit.karate.StepActions.driver(StepActions.java:391)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at com.intuit.karate.core.Engine.executeStep(Engine.java:150)
    at com.intuit.karate.core.ScenarioExecutionUnit.execute(ScenarioExecutionUnit.java:234)
    at com.intuit.karate.core.ScenarioExecutionUnit.run(ScenarioExecutionUnit.java:319)
    at java.base/java.util.concurrent.ForkJoinTask$AdaptedRunnableAction.exec(ForkJoinTask.java:1407)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
Caused by: io.netty.karate.handler.codec.http.websocketx.WebSocketHandshakeException: Invalid handshake response getStatus: 403 Forbidden
    at io.netty.karate.handler.codec.http.websocketx.WebSocketClientHandshaker13.verify(WebSocketClientHandshaker13.java:274)
    at io.netty.karate.handler.codec.http.websocketx.WebSocketClientHandshaker.finishHandshake(WebSocketClientHandshaker.java:302)
    at com.intuit.karate.netty.WebSocketClientHandler.channelRead0(WebSocketClientHandler.java:85)
    at io.netty.karate.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:99)
    at io.netty.karate.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.karate.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.karate.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.karate.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
    at io.netty.karate.handler.codec.http.websocketx.extensions.WebSocketClientExtensionHandler.channelRead(WebSocketClientExtensionHandler.java:127)
    at io.netty.karate.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.karate.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.karate.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.karate.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103)
    at io.netty.karate.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.karate.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.karate.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.karate.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436)
    at io.netty.karate.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:324)
    at io.netty.karate.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296)
    at io.netty.karate.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251)
    at io.netty.karate.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.karate.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.karate.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
    at io.netty.karate.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
    at io.netty.karate.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
    at io.netty.karate.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
    at io.netty.karate.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
    at io.netty.karate.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
    at io.netty.karate.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:714)
    at io.netty.karate.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:650)
    at io.netty.karate.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:576)
    at io.netty.karate.channel.nio.NioEventLoop.run(NioEventLoop.java:493)
    at io.netty.karate.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
    at io.netty.karate.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
    at io.netty.karate.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
    at java.base/java.lang.Thread.run(Thread.java:834)

UITest.feature:9 - driver config / start failed: io.netty.karate.handler.codec.http.websocketx.WebSocketHandshakeException: Invalid handshake response getStatus: 403 Forbidden, options: {type=chrome, addOptions=["--no-sandbox","--headless=new","--remote-allow-origins=*","--disable-extensions","--disable-dev-shm-usage","--disable-notifications"], showDriverLog=true, showProcessLog=true, userDataDir=null, target=null}
16:17:31.319 [pool-1-thread-1] INFO  com.intuit.karate.Runner - <<fail>> feature 1 of 1: src/test/java/global/programs/UITest.feature

websocket karate
1个回答
0
投票

请尝试以下代码:

Feature: UI Test validation

  Background: 
    * configure driver = { type: 'chrome' }

  @login
  Scenario: Sample
    Given driver 'https://www.google.com/'

Html 报告

© www.soinside.com 2019 - 2024. All rights reserved.