Am с помощью Java Reflection, Здесь я использую объект org.openqa.selenium.remote.RemoteWebElement, чтобы вызвать метод под названием SendKeys. Этот метод будет принимать characterSequence Array как тип параметра, поэтому передайте characterSequence [] в качестве параметра. Использование classname.getMethod (sendKeys, characterSequence []) Я могу получить имя метода. Но когда этот метод innvoked в выполнения прохождения массива characterSequences [] в качестве аргумента он бросаетJAVA ОТРАЖЕНИЕ: java.lang.IllegalArgumentException: тип аргумента несоответствие
java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.thbs.manager.Reflections.callSeleniumCommand(Reflections.java:115)
at com.google.manager.Testing.doTestExecution(Testing.java:105)
at com.google.manager.Testing.main(Testing.java:22)
Не удалось разместить весь код, но отправил код, который бросает ошибку
objToCallWith = org.openqa.selenium.remote.RemoteWebElement
cls = objToCallWith.getClass();
methodName = sendKeys
params = CharSequence[].class
// send keys method accept only CharSequence[]
myMethod = cls.getMethod(methodName, params);
// able to getMethod
args = new CharSequence[]{'a','b'}
// Here Exception java.lang.IllegalArgumentException: argument type mismatch
myMethod.invoke(objToCallWith,args);
'new CharSequence [] {'a', 'b'}' неверно. '' a'' является типом char и поэтому не может быть преобразован в 'CharSequence'. Вы должны перейти на 'new CharSequence [] {" a "," b "}', и он будет работать. –
новый CharSequence [] {«a», «b»} также не работает, показывая незаконный аргумент. Исключение –