What happened?
I got ClassCastException. when call executeScript method and input array which not Object[] as argument.
It cased by class org.openqa.selenium.remote.internal.WebElementToJsonConverter
line 61:
if (arg.getClass().isArray()) {
arg = Arrays.asList((Object[]) arg);
}
How can we reproduce the issue?
import java.io.IOException;
import org.junit.Test;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
public class Reproduce {
@Test
public void test() throws IOException {
var driver = new ChromeDriver(new ChromeOptions().setHeadless(true));
String content = "window.func=function func(t){return t}";
driver.executeScript(content);
var a = new short[] {};
driver.executeScript("return window.func(arguments[0])", a);
}
}
### Relevant log output
```shell
.lang.ClassCastException: class [S cannot be cast to class [Ljava.lang.Object; ([S and [Ljava.lang.Object; are in module java.base of loader 'bootstrap')
at org.openqa.selenium.remote.internal.WebElementToJsonConverter.apply(WebElementToJsonConverter.java:61)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
at org.openqa.selenium.remote.RemoteWebDriver.executeScript(RemoteWebDriver.java:469)
at org.deking.geetest.test.a.test(a.java:24)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:93)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:40)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:529)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:756)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:452)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
Operating System
win10
Selenium version
4.7.2
What are the browser(s) and version(s) where you see this issue?
Chrome 109.0.5414.75
What are the browser driver(s) and version(s) where you see this issue?
ChromeDriver 109.0.5414.74
Are you using Selenium Grid?
no
What happened?
I got ClassCastException. when call executeScript method and input array which not Object[] as argument.
It cased by class org.openqa.selenium.remote.internal.WebElementToJsonConverter
line 61:
How can we reproduce the issue?
Operating System
win10
Selenium version
4.7.2
What are the browser(s) and version(s) where you see this issue?
Chrome 109.0.5414.75
What are the browser driver(s) and version(s) where you see this issue?
ChromeDriver 109.0.5414.74
Are you using Selenium Grid?
no