質問: new PhantomJSDriver(cap); driver.get(url) driver.get(url + "/hsb/"); driver.findElement(By.xpath("//a[contains(text(),'日程・結果')]")).click(); driver.findElement(By.xpath("//body/a")).click(); ``` という書き方があったときに(これでは実際に動かないが例として)最後のfindElementがうまく動作せずに その後の処理がスルーされて終了してしまいます。 xpathはsseleniumIDEでテストの記録を行って得たものです。 ・サイトURLによってclick操作が不可能なものがあるのでしょうか。 ・というか、seleniumIDEでテストの記録を行ったものに対してそのままテストケースを実行したときにテストに失敗するのはどういうことなんでしょうか。 http://baseball.yahoo.co.jp/hsb/ を使って画面遷移しようとしたときのテストケースは失敗してしまいます(seleniumIDEにて)。
回答: Java6以降という前提ですが、一応javax.script パッケージを利用することでJavaScirptそのものを動かすことが可能です。 [Java8] Java上でJavaScriptを動かす ただphantomJSそのものにこだわりがないので、あればJava言語のスクレイピングライブラリはjsoup以外にもありますので、こちらをご利用することをオススメします。 * Selenium: ニコニコ静画のクローラーをSelenium WebDriverで作る * crawler4j: Javaでクローラを実装する * Ui4j: Webオートメーションツールを使って、快適Webスクレイピング * camel: Camelを使ったJavaスクレイピング * JTIDY: Java - Tidy で Web スクレイピング! - mk-mode BLOG これ以外にも探せばあるかもしれませんね。