2017-12-13 20 views
0

セレンコードをbeanshellで実行するように変更しています。変数string execodeにはすべてのimporteライブラリステートメントが含まれており、文字列avには実行するコードが含まれています。セレンインポートクラスのいくつかのvoid関数は、コードで以下のチェックのように動作しますが、メソッド "getTagName();"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には見られない。作業だけで、ボイド方法が今取り組んでいること "のSendKeys()" であります.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なしで実行すると、何かが完全に異なる。 –

関連する問題