2017-12-13 13 views
0

셀레늄 코드를 beanshell을 통해 변환하는 중입니다. 변수 문자열 execode에는 모든 importe 라이브러리 문과 문자열 av가 포함되어 있습니다. 셀렌 가져 오기 클래스의 일부 void 함수는 코드에서 아래의 check처럼 작동하지만 "getTagName();" 작업하지만 지금 작업 만 무효 방법 "에서 SendKeys();"입니다 :BeanShell Selenium

Interpreter abc= (Interpreter) new bsh.Interpreter(); 
abc.set("driver", driver); 
String av="WebElement us =driver.findElement(By.name(\"q\"));\n" + 
     "+us.sendKeys();\n" + 
"System.out.print(\"GET: \"+us.getTagName());"; 
abc.eval(execode+av); 

오류 수신 : 메소드 호출에

오류 : 방법에서 SendKeys()가 class'org에서 찾을 수 없습니다 라인에서 : .openqa.selenium.remote.RemoteWebElement '30 :

사람이 (잘못된, 왜 단지에서 SendKeys를 무슨 일이 일어나고 있는지 알 수 있음); 작동 안함.

답변

0

클래스 패스에 문제가있는 것 같습니다.

selenium.api...jar 대신 selenium-remote-driver...jar에서 org.openqa.selenium.remote 패키지를 사용하고 있습니다. RemoteWebElementsendKeys()이 있는지 확인했습니다.

그러나 jar 파일의 버전은이 방법이없는 이전 버전입니다. jar 파일을 프로젝트 클래스 경로에 추가하고 해당 버전이 마지막인지 확인하십시오.

+0

그러나 동일한 라이브러리를 가진 beanshell없이이 코드를 직접 실행하면 beanshell 인터프리터에서도 동일한 셀레늄 클래스의 함수 대부분이 sendKeys()를 제외하고 작동합니다. –

+0

@A.Aleem11 예외는이 메서드에 대해이 클래스가 제공되지 않는다는 것을 보여줍니다. 따라서, BeanShell없이 실행하면 완전히 다른 것이 있습니다. –