双極性障害システムコンサルタントのBlog

双極性障害システムコンサルタントのBlog

2020.02.09
XML
カテゴリ: プログラミング
​最近休日の過ごし方で、少しプログラムを触るようにしています。

今まで色々なプログラム言語に携わりました(10言語以上…)、 一番経験値として高いのはjava になるのが現状です。

特に最近気になっていたのが SeleniumがJavaでどこまで活用できるか 、興味がてらに色々試しています。
(Pythonならライブラリが豊富なので、今からPythonをちゃんと学ぶのも一つとは思いますが。。。)



と言っても、もうプログラミングからは随分離れていて、コンサルティングばかりしていた事もあり、 SeleniumがRPAツールとどの程度の差があるのか 知りたかった、というのがきっかけでした。
(RPAも「UI Path」や「blueprism」は提案し、色々調べていましたので。)

Katalon Recorder ​」という、Excelで言うところのマクロ記録的なプラグインがあり、このツールからjavaやC#、Python、Ruby等に操作内容をソースにエクスポートする機能があります。



利用方法も実に簡単で、「​ Chromeウェブストア ​」から「​ Katalon Recorder ​」をインストールして、Chromeタブ左下に出来たアイコンをクリックするとプラグインが起動します。

あとは「Record」ボタンをクリックした後にChrome上で操作を行い、「Stop」した後に「Export」するだけです。

あとはRPAツール同様、WEBの描画が追い付かない部分に、ロード後に表示される部品が存在するかチェックするか​、
(driver.findElement(By.className("対象部品のクラス名")))
​簡単に行うのであればスレッドを待つのが簡単です。
try {
Thread.sleep(3000);
} catch (InterruptedException e1) {

}


今回はテスト的に​ Yahooニュース ​のコメントで「そう思う(いいね?)」ボタンをクリックするだけの簡単なものを試してみました。
⇒ 利用によっては悪用になるので、あくまでもテスト的に参考にして下さい。

実は簡単にWebElementをWebDriverから取得して、findElement()メソッドで探した部品をclick()するだけと思ったのですが、そこに「ひっかけ」がありました。
⇒そりゃ、簡単に出来たら悪用されますしね。。。

特定のハッシュ値がページロード時に埋め込まれており 、単純にSeleniumでWebDriver.get("ページ名")だけだと、上記ハッシュ値がエラー値を埋め込むように制御されているので、該当ボタンをclick()した際のJavaScript制御でエラーとなります。。。

色々試したのですが、なかなかうまくいかず、試行錯誤の結果、 ページを描画後にjavascriptでハードリフレッシュ する方法でとりあえず落ち着きました。
​
//javascriptでハードリフレッシュ
JavascriptExecutor jexec = (JavascriptExecutor) driver;
jexec.executeScript("location.reload(true);");
このあと画面描画まで少し待ち、該当コメントの「 topic_id comment_id 」が含まれるElementを取得後、更にそこから該当ボタンを探してclick()するという荒業で、何とか制御できました。

いや~、どちらかというとSeleniumの勉強というより、Yahooの偽装チェックをハックしたような感じになってしまいました。。。


なお執筆時点では上記で回避できましたが、今後のYahoo側の対策によっては制御が変わる可能性が高いと思いますので、予めご了承ください。

ここまでお読み頂き、有難うございました!
興味のある方は、以下の文献などで、ちゃんとSeleniumを学ぶ事をお勧めします。

​
Selenium実践入門 自動化による継続的なブラウザテスト (WEB+DB press plusシリーズ) [ 伊藤望 ] ​​





お気に入りの記事を「いいね!」で応援しよう

最終更新日  2020.02.18 16:33:40
コメントを書く
[プログラミング] カテゴリの最新記事


■コメント

お名前
タイトル
メッセージ
画像認証
上の画像で表示されている数字を入力して下さい。


利用規約 に同意してコメントを
※コメントに関するよくある質問は、 こちら をご確認ください。


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

PR

×

サイド自由欄


カレンダー

コメント新着

コメントに書き込みはありません。

バックナンバー

2026.10
2026.09
2026.08
2026.07
2026.06

キーワードサーチ

▼キーワード検索


© Rakuten Group, Inc.
Design a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: