メソッドfindElementを使用して WebElement を取得するために、セレンWebドライバーで試しました。出来た。しかし、メソッドfindElementと引数をBy.name("")として呼び出してWebElementを取得しようとしたときに、リフレクションAPIに問題がありました。ここで、次の行で問題についてより多くのアイデアを得ることができます。
Javawは例外をスローしていました
java.lang.NoSuchMethodException: java.lang.Class.getMethod の org.openqa.selenium.firefox.FirefoxDriver.findElement(org.openqa.selenium.By$ByName) (不明なソース)
一般的なアプローチ(ワーキング)で試した
WebDriver driver = new FirefoxDriver();
Method[] methods = driver.getClass().getMethods();
for(Method method:methods){
System.out.println(method.getName());
}
driver.manage().window().maximize();
driver.get("http://www.facebook.com/");
By by = By.name("email");
WebElement element = driver.findElement(by);
Java リフレクション API を使用して実装 (以下のコードで例外が発生)
WebDriver driver = new FirefoxDriver();
Method[] methods = driver.getClass().getMethods();
for(Method method:methods){
System.out.println(method.getName());
}
driver.manage().window().maximize();
driver.get("http://www.facebook.com/");
By by = By.name("email");
Class c = Class.forName(driver.getClass().getName());
Method getMethod = c.getMethod("findElement", new Class[]{by.getClass()});
getMethod.setAccessible(true);
WebElement element = (WebElement) getMethod.invoke(driver, by);
リフレクションAPIを使用してコードの作業を完了するようにガイドできる人がいます