質問編集履歴

2

質問内容の具体化

2016/12/17 15:08

投稿

renkon203
renkon203

スコア13

test CHANGED
File without changes
test CHANGED
@@ -21,3 +21,81 @@
21
21
  リンク先の情報を取得するのでしょうか。
22
22
 
23
23
  java言語でphantomJSを操作する方法がわからないんです。
24
+
25
+
26
+
27
+ > narita_takashiさん
28
+
29
+ ご回答ありがとうございます。
30
+
31
+ ならびに返信が遅くなり申し訳ありません。
32
+
33
+ 質問の意味を私が誤解しておりました。
34
+
35
+ phantomjsはjavaのライブラリとしてサポートされていますので
36
+
37
+ javaの中でjavascriptを動かすライブラリ等を別に用意する必要はないと考えています。
38
+
39
+ また、phantomjsはseleniumのライブラリの中に組み込まれているものがあり、seleniumと同様の操作がある程度可能ということもわかりました。
40
+
41
+ ちなみに私がphantomjsを使おうとしている理由としましては、
42
+
43
+ 1.ブラウザを実際にGUI上で起動する必要がない(処理が気持ち早い)
44
+
45
+ 2.java上で動かすことができる
46
+
47
+ 3.click操作によるクローリングが可能
48
+
49
+ 点にひかれました。
50
+
51
+
52
+
53
+ これらを通して、質問内容が少し具体的になってきました。
54
+
55
+ ### 画面遷移の方法
56
+
57
+ java環境にてphantomjsを使ってスクレイピングをする。
58
+
59
+ 例えば、引数にStringでurlが投げられて
60
+
61
+ urlがhttp://baseball.yahoo.co.jp/
62
+
63
+ であったばあいに、
64
+
65
+ ```
66
+
67
+ DesiredCapabilities cap = DesiredCapabilities.phantomjs();
68
+
69
+ cap.setJavascriptEnabled(true);
70
+
71
+ System.setProperty("phantomjs.binary.path", PHANTOMJS_PATH);
72
+
73
+ PhantomJSDriver driver = new PhantomJSDriver(cap);
74
+
75
+
76
+
77
+ driver.get(url)
78
+
79
+ driver.get(url + "/hsb/");
80
+
81
+ driver.findElement(By.xpath("//a[contains(text(),'日程・結果')]")).click();
82
+
83
+ driver.findElement(By.xpath("//body/a")).click();
84
+
85
+ ```
86
+
87
+ という書き方があったときに(これでは実際に動かないが例として)最後のfindElementがうまく動作せずに
88
+
89
+ その後の処理がスルーされて終了してしまいます。
90
+
91
+ xpathはsseleniumIDEでテストの記録を行って得たものです。
92
+
93
+ ・サイトURLによってclick操作が不可能なものがあるのでしょうか。
94
+
95
+
96
+
97
+ ・というか、seleniumIDEでテストの記録を行ったものに対してそのままテストケースを実行したときにテストに失敗するのはどういうことなんでしょうか。
98
+
99
+ http://baseball.yahoo.co.jp/hsb/
100
+
101
+ を使って画面遷移しようとしたときのテストケースは失敗してしまいます(seleniumIDEにて)。

1

わからないことの追加

2016/12/17 15:08

投稿

renkon203
renkon203

スコア13

test CHANGED
File without changes
test CHANGED
@@ -19,3 +19,5 @@
19
19
  どのようにリンクをクリックし、
20
20
 
21
21
  リンク先の情報を取得するのでしょうか。
22
+
23
+ java言語でphantomJSを操作する方法がわからないんです。