はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • はてなブックマークって?
  • アプリ・拡張の紹介
  • ユーザー登録
  • ログイン
  • Hatena

はてなブックマーク

トップへ戻る

  • 総合
    • 人気
    • 新着
    • IT
    • 最新ガジェット
    • 自然科学
    • 経済・金融
    • おもしろ
    • マンガ
    • ゲーム
    • はてなブログ(総合)
  • 一般
    • 人気
    • 新着
    • 社会ニュース
    • 地域
    • 国際
    • 天気
    • グルメ
    • 映画・音楽
    • スポーツ
    • はてな匿名ダイアリー
    • はてなブログ(一般)
  • 世の中
    • 人気
    • 新着
    • 新型コロナウイルス
    • 働き方
    • 生き方
    • 地域
    • 医療・ヘルス
    • 教育
    • はてな匿名ダイアリー
    • はてなブログ(世の中)
  • 政治と経済
    • 人気
    • 新着
    • 政治
    • 経済・金融
    • 企業
    • 仕事・就職
    • マーケット
    • 国際
    • はてなブログ(政治と経済)
  • 暮らし
    • 人気
    • 新着
    • カルチャー・ライフスタイル
    • ファッション
    • 運動・エクササイズ
    • 結婚・子育て
    • 住まい
    • グルメ
    • 相続
    • はてなブログ(暮らし)
    • 掃除・整理整頓
    • 雑貨
    • 買ってよかったもの
    • 旅行
    • アウトドア
    • 趣味
  • 学び
    • 人気
    • 新着
    • 人文科学
    • 社会科学
    • 自然科学
    • 語学
    • ビジネス・経営学
    • デザイン
    • 法律
    • 本・書評
    • 将棋・囲碁
    • はてなブログ(学び)
  • テクノロジー
    • 人気
    • 新着
    • IT
    • セキュリティ技術
    • はてなブログ(テクノロジー)
    • AI・機械学習
    • プログラミング
    • エンジニア
  • おもしろ
    • 人気
    • 新着
    • まとめ
    • ネタ
    • おもしろ
    • これはすごい
    • かわいい
    • 雑学
    • 癒やし
    • はてなブログ(おもしろ)
  • エンタメ
    • 人気
    • 新着
    • スポーツ
    • 映画
    • 音楽
    • アイドル
    • 芸能
    • お笑い
    • サッカー
    • 話題の動画
    • はてなブログ(エンタメ)
  • アニメとゲーム
    • 人気
    • 新着
    • マンガ
    • Webマンガ
    • ゲーム
    • 任天堂
    • PlayStation
    • アニメ
    • バーチャルYouTuber
    • オタクカルチャー
    • はてなブログ(アニメとゲーム)
    • はてなブログ(ゲーム)
  • おすすめ

    WWDC25

『www.katsulog.tech』

  • 人気
  • 新着
  • すべて
  • ruby + selenium webdriverチュートリアル | katsulog

    7 users

    www.katsulog.tech

    本エントリーは、Selenium/Appium Advent Calendar 2019 25日目エントリーです。 いい感じのチュートリアルがないので自分で作ります 近頃、自動化とかRPA系のイベントで登壇とかしているせいか、私への弟子入り志願者が増えています。 私としてはとても嬉しいですし、育ってくれたら仕事を手伝っていただきたいという気持ちですが、 プログラミングの学習サービスは数あれど、seleniumに関するオンライン学習となるとなかなか良いものがありません。 毎回1から教えていると時間がいくらあっても足りません。 そもそも業務効率化の事業をしているのに、全然効率的ではない。 ある程度体系化したものを自分で作って、最初はそのチュートリアルをやってみてもらうということにしました。 この記事は私のnoteでも公開します。 https://note.mu/katsuyads/n/nb83

    • テクノロジー
    • 2019/02/16 19:02
    • Chrome
    • ruby
    • 環境構築不要で配布!ruby+seleniumのコードをexe化【chromedriver】 | katsulog

      7 users

      www.katsulog.tech

      本エントリーは、Selenium/Appium Advent Calendar 2018 2日目エントリーです。 rubyのコードを配布するなら環境構築が必要 rubyで書いたコードを実行してもらうならrubyのインストールやらgemのインストールやら、 seleniumであればchrome driverの設置やpathを通すなど、相手の環境で設定することが必須です。 この環境構築が結構めんどくさいので、手順を説明するってよりは遠隔で操作して設定してあげたりします。 windowsならruby + selenium webdriverも環境設定は15分で終わる exe化すれば環境構築が要らない!コマンドラインの操作も要らない!ダブルクリックでそのまま実行! windowsに限りますが、rbファイルをexe化してしまえば、コマンドラインの操作も要らずにダブルクリックだけで動作します。 今回は

      • テクノロジー
      • 2018/08/13 21:36
      • webdriver
      • Chrome
      • ruby
      • Windows
      • ocra
      • 【効率化】VS CODEでよく使う文字列をショートカットキーで登録 | katsulog

        4 users

        www.katsulog.tech

        開発エディタAtom → VS CODEを使ってみてる 2年くらいAtomを使っていましたが、めっちゃ重くなったり、固まって落ちるということが頻発していました。 また、コマンドラインをエディタ上で使うためのPlatformin IDE TerminalがAtomのバージョンをあげると使えなくなったりと、 バージョンアップ毎にパッケージの更新を待たなければならないなどの事情があって、手動でAtomのロールバックを行わなければならないとか、、、 結構困っていることがありました。 Visual Studio Codeがとにかく良いという噂を聞いた 日々読んでいるフィードの中でVS CODEがとにかくよいという記事を見ました。 ・とにかく軽い。落ちたことなんてない。 ・コマンドラインツールがデフォルトでついている ・日本語化もデフォルトでできる こんな内容だったんですね。 もし本当ならAtomから

        • テクノロジー
        • 2018/07/28 09:34
        • ruby
        • ツール
        • chromedriverのheadlessでファイルをダウンロードする | katsulog

          8 users

          www.katsulog.tech

          headlessではないGUIでのコード まず通常モードでの実装です。 ダウンロード先のパスを指定するダイアログを表示しないようにして、 ダウンロード先のパスを指定します。 今回はコードと同ディレクトリの tmp フォルダを指定します。 prefs = { :download => { :prompt_for_download => false, :default_directory => File.absolute_path("./tmp") } } d = Selenium::WebDriver.for :chrome, prefs: prefs # この後にダウンロードリンクをクリックするコードを書く

          • テクノロジー
          • 2018/05/02 13:13
          • test
          • Chrome
          • ruby
          • web
          • リンクを別タブを開いてアクセスすればPageBackとか要らない | katsulog

            3 users

            www.katsulog.tech

            Pythonで同じような記事がありました あずみ.net様はPythonでのSelenium記事が多数あるので、Pythonの方はオススメです。 【Python】Seleniumで別タブにページを 表示させる方法 | あずみ.net katsulogではRubyとJavaScriptで実装してみます あずみ.net様ではショートカットキーを利用して実装されていましたが、 当ブログではJavaScriptで新しいタブを開いてリンクを開いてみます。 もちろんrubyでもショートカットで開くという方法もありますが、敢えて別の方法でやってみましょう。 実装 では、ポイントを分けて説明していきます。 リンクを取得 要素からリンク先のURLを取得します。 require 'selenium-webdriver' driver = Selenium::WebDriver.for :chrome link

            • テクノロジー
            • 2018/03/18 23:10
            • ruby
            • javascript
            • selenium webdriverでchromeのprofileを作成しログイン情報などを記憶 | katsulog

              8 users

              www.katsulog.tech

              selenium webdriverで任意のchrome profileを作成し、ログイン情報などを記憶させる 2018年1月29日 driverを起動させる度にログインさせるのが面倒 selenium webdriverを使っていると、ログインが必要なサイトにアクセスする時に毎回ログイン情報を入力させてからサイトの中を動作させなければなりません。 複数のdriverを起動させる場合もdriver毎にログインしなければなりません。 ログイン機能のテストをしているのであれば良いのですが、できればログインを飛ばしてしまいたいと思うことはありませんか? 通常のChromeであればログイン情報が保存されているのでログインや2段階認証が飛ばせる いつも使っているChromeでは、ブラウザを立ち上げる度にgoogleのログインが求められますか?2段階認証を求められるでしょうか? そんなことはありません

              • テクノロジー
              • 2018/01/29 16:18
              • selenium
              • Chrome
              • テスト
              • test
              • ruby
              • ruby + selenium(RSpecなど)の例外処理には回数を指定すべきです | katsulog

                5 users

                www.katsulog.tech

                エラーを捕捉してくれる例外処理(begin,rescue,retry) 自動テストなどでは、対象のアプリの不具合ではなく、コードやマシンなどのクライアント側のエラーが発生した場合のために例外処理を入れると運用がスムーズになります。 これ超便利。「なぜか時々ここでコケるんだよなぁ。。。」っていう場合にエラーを捕捉して、その処理をやり直してくれます。 こんな感じですね。

                • テクノロジー
                • 2017/12/21 18:36
                • test
                • ruby
                • programming
                • rubyでSSL接続時のエラーやhttpsの画像が保存できない時の対処法 | katsulog

                  3 users

                  www.katsulog.tech

                  open-uriなどでcertificate verify failedと怒られる httpsのサイトにopen-uriなどで接続すると “certificate verify failed”というエラーが表示されてしまうことがあります。 「証明書検証に失敗しました」ってことですね。 seleniumやnokogiriで画像を保存しようとすると空のファイルが保存される selenium webdriverやnokogiriで画像を保存しようとすると以下のようになります。 require 'selenium-webdriver' require 'open-uri' driver = Selenium::WebDriver.for :chrome ###この辺にページでの処理### # 画像のURLを取得 url = driver.find_element(:id, 'gazo').find

                  • テクノロジー
                  • 2017/11/05 19:03
                  • image
                  • ruby
                  • web
                  • CSVを作成する時にbom付きで保存して文字化けを解決! | katsulog

                    4 users

                    www.katsulog.tech

                    csvファイルを作成すると文字化けする スクレイピングなんかをしているとデータをCSVに入れたくなりますよね。 でもそこにマルチバイト文字が混ざっているとエクセルで開いた時に文字化けしてしまったという経験があるのではないでしょうか。 bom付きで保存して解決 rubyに標準で入っているcsvライブラリのgenerateを使ってbom付きのCSVを作ってみましょう。 require 'csv' # bomを作成 bom = %w(EF BB BF).map { |e| e.hex.chr }.join # generateで引数にbomを渡してあげる csv_file = CSV.generate(bom) do |csv| csv << ["名前", "メールアドレス", "年齢"] end

                    • テクノロジー
                    • 2017/10/31 10:29
                    • rails
                    • ruby
                    • IT
                    • web
                    • [無料]Chrome headless + seleniumをherokuで定期実行 | katsulog

                      15 users

                      www.katsulog.tech

                      headless driverについて headlessでseleniumを実行すると言えばつい最近まではPhantomJSでしたが、 PhantomJSにはバグが多く存在しているにも関わらず、開発は終了してしまいました。 headlessで実行できるということはGPUを使用せずに実行できるということになります。 通常のwebdriverでは実行するとブラウザが立ち上がって処理を行っていきますが、 headlessではブラウザが立ち上がることなく処理が行われます。 GPUを使用しないということはjenkinsなどで仮想のデスクトップ環境を用意する必要もなくなるわけです。 前述したようにheadlessの代表格だったPhantomJSの多くのバグを残したまま開発が終わってしまいました。 そこで登場した期待の新星がChromeのheadlessモードです。 Chromeのheadlessも登場

                      • テクノロジー
                      • 2017/10/17 19:03
                      • heroku
                      • headless
                      • webdriver
                      • selenium
                      • Chrome
                      • ruby
                      • GoogleSpreadSheetでのスクレイピング時にサイトにログインした後のソースを取得 | katsulog

                        18 users

                        www.katsulog.tech

                        [GAS]GoogleSpreadSheetでのスクレイピング時にサイトにログインした後のソースを取得 2017年10月16日 スクレイピングの手法 rubyでのスクレイピング 本ブログではruby + selenium webdriverをメインで扱っていますが、 この技術を使ってよくスクレイピングしています。 私はrubyでのスクレイピングではseleniumかgemのnokogiriを使っています。 ruby + selenium webdriver(windows)のセットアップ方法は以下の記事で紹介しています。 windowsならruby + selenium webdriverも環境設定は15分で終わる | katsulog nokogiriでのスクレイピングではブラウザなどが立ち上がることなく、コマンドライン上のみで完結します。 Tutorials – Nokogiri 鋸

                        • テクノロジー
                        • 2017/10/16 11:37
                        • google apps script
                        • scraping
                        • スクレイピング
                        • GAS
                        • google
                        • windowsならruby + selenium webdriverも環境設定は15分で終わる | katsulog

                          10 users

                          www.katsulog.tech

                          seleniumってよく聞くけど何? このブログではプログラミング言語のrubyと自動化ツールselenium webdriverをメインに扱っておりますが、 じゃあそもそもseleniumって何よ?何ができるのよ?なんでみんな使ってるのよ?という方がたくさんいると思います。 入門記事をググってみた 「selenium webdriverとは」でググってみたところ以下のような記事が上位に出てきました。 Selenium WebDriver入門 – Qiita Selenium WebDriverでWebアプリのテストが変わる(前編):iPhone/Android含むブラウザ自動テストの最終兵器Selenium WebDriverとは (1/2) – @IT 簡単・便利、ブラウザの自動操作!~Selenium WebDriver~ : アシアルブログ Selenium WebDriverのイ

                          • テクノロジー
                          • 2017/10/11 15:40
                          • ruby
                          • windows
                          • selenium gridやjenkinsを返さず単体のコードのみで複数のdriverを並列実行 | katsulog

                            10 users

                            www.katsulog.tech

                            複数のdriverを一気に立ち上げる 複数のdriverを宣言するのには普通に考えると以下のようになります。 driver1 = Selenium::WebDriver.for :chrome driver2 = Selenium::WebDriver.for :chrome driver3 = Selenium::WebDriver.for :chrome driver4 = Selenium::WebDriver.for :chrome driver5 = Selenium::WebDriver.for :chrome driver6 = Selenium::WebDriver.for :chrome driver7 = Selenium::WebDriver.for :chrome driver8 = Selenium::WebDriver.for :chrome driver9 =

                            • テクノロジー
                            • 2017/10/05 16:38
                            • selenium
                            • thread
                            • ruby
                            • rescueでどんなエラーが起きたか表示させる | katsulog

                              4 users

                              www.katsulog.tech

                              とかで動きを途中で止めて変数の値を見たり、ブラウザで値が取れるか調べたり。 コード実装時間の半分くらいがデバッグの連続だと思います。 とにかく謎のエラーが多いseleniumです。 エラー処理を回避するbegin~rescue 何かしらエラーが起きた時にそのコードに対してbegin書いておくことで何かしらの処理を行えます。 エラーが起きた時に何かしらの処理を行ってくれるのがrescueですね。 例えば「何らかの処理」を行っている時にエラーが起きた場合に処理をリトライさせたいならrescueの後にretryを書きます。

                              • テクノロジー
                              • 2017/09/21 13:44
                              • test
                              • ruby
                              • webサービス
                              • ruby + selenium webdriverをchrome拡張付きで起動する | katsulog

                                7 users

                                www.katsulog.tech

                                本エントリーは、Selenium/Appium Advent Calendar 2017の12日目エントリーです。 chrome driverをextensionつきで起動 seleniumのchromedriverが起動するとChrome拡張無しで起動しますよね。 例えば広告をブロックする拡張やモノゾンなどのデータを表示してくれる拡張を有効にして実行したいシーンがあります。 今回はselenium webdriberをChrome拡張付きで起動する方法をご紹介します。 拡張からcrxファイルを作成する windowsとmacではcrxファイルが違うことに注意 windowsでwebdriverを起動する場合とmacで起動する場合でそれぞれcrxファイルが違います。 windowsの場合はwindowsのChormeを使ってcrxファイルを作成し、macの場合はmacで作成しましょう。 w

                                • テクノロジー
                                • 2017/09/07 14:20
                                • selenium
                                • chrome
                                • ruby
                                • mac
                                • 要素を待つ時にsleepを使うのはオススメしない | katsulog

                                  3 users

                                  www.katsulog.tech

                                  no such element: Unable to locate elementとかElement is not clickable at pointとかを回避するためのwait ruby + selenium webdriverを使っていれば誰もが見たことあるこれらのエラー。 動作が速すぎて要素が現れる前に処理が実行されてしまいこのエラーが出ちゃうことが多いですよね。 秒数を指定して動作を待つsleep このように書けば10秒待ってから次の処理を行うというコマンドです。 でも本当に10秒待てば次の要素は必ず現れるのでしょうか? ネットワークや実行する環境によっては1秒で現れてくれるかもしれないし、12秒待っても現れてくれないかもしれません。 前者の場合は1秒で現れてくれるのだから9秒無駄になってしまい、sleepを書く度にその無駄な時間が積み重なっていきます。 後者の場合はもちろんエラ

                                  • テクノロジー
                                  • 2017/08/31 23:08
                                  • test
                                  • ruby
                                  • ruby+selenium webdriverで使うCSVについていろいろ | katsulog

                                    4 users

                                    www.katsulog.tech

                                    別にseleniumじゃなくてもrubyで使うcsvライブラリ rubyでCSVファイルを扱うための csvライブラリ 。 CSVファイルを読み込んだり、CSVファイルを出力したりといろいろできます。 別にseleniumを使うために用意されたライブラリでは決してないのですが、 私が携わったselenium webdriverでの案件では本当に多用してきました。 テストでの利用シーンでは、CSVでデータをダウンロードできる機能でファイルの中身が正しいかどうかの検証。 ブラウザ自動操作では、テストアカウントの読み込みや入力するデータをCSVファイルに記載して、それを読み込んでの実行。 スクレイピングでは取得したデータをCSVファイルで出力するという機能。 selenium webdriverを使っていて欠かせない技術がCSVファイルの扱いになります。 今回は私が使って来たcsvライブラリ(ク

                                    • テクノロジー
                                    • 2017/08/30 23:24
                                    • test
                                    • ruby
                                    • xpathについてのtips | katsulog

                                      7 users

                                      www.katsulog.tech

                                      idやclassが設定されていないページで多様するxpath selenium webdriverのコードを実装していく時にソースコードを見てidやclassが振られていれば良いのですが、 そんなにこちらの都合に合わせて作ってくれていないWEBページはよくあります。 そんな時にどうしても使わなければならないのがxpathです。 今回はそんなxpathで実装する際のtipsをいくつかご紹介したいと思います。 classにスペースが含まれるとエラーになる場合 classが複数振られている場合、ソース上はclass毎にスペース区切りで書かれています。

                                      • テクノロジー
                                      • 2017/08/29 16:41
                                      • xpath
                                      • selenium
                                      • ruby
                                      • textareaへのsend_keysの速度が遅い時の対処法 | katsulog

                                        4 users

                                        www.katsulog.tech

                                        今まで当然のようにこのまま実装していました。 textareaへの入力速度が遅いというクレームが来た textareaとなると数千文字を入力する必要がある場合があると思います。 私の環境はwindow10+ruby2.3.3+chromedriverなのですが、send_keysでテキストを入力していくと、 高速ではあるのですが、1文字1文字入力していく形となり、同様の動作を1000件のように大量に行う必要があると、 大変な時間が掛かって来てしまいます。 私が開発依頼を請けたシステムも3000文字ほどの入力を1000件続けて行うような要件となっていました。 「selenium IDEでは一瞬で文字が貼り付けられたのにこれでは遅すぎる」というお叱りを受けることになったのです。 コピペ的なことで速度をあげたい textareaに一気に入力するのであればコピペっぽいことでいけるでしょうということ

                                        • テクノロジー
                                        • 2017/08/28 18:07
                                        • ruby

                                        このページはまだ
                                        ブックマークされていません

                                        このページを最初にブックマークしてみませんか?

                                        『www.katsulog.tech』の新着エントリーを見る

                                        キーボードショートカット一覧

                                        j次のブックマーク

                                        k前のブックマーク

                                        lあとで読む

                                        eコメント一覧を開く

                                        oページを開く

                                        はてなブックマーク

                                        • 総合
                                        • 一般
                                        • 世の中
                                        • 政治と経済
                                        • 暮らし
                                        • 学び
                                        • テクノロジー
                                        • エンタメ
                                        • アニメとゲーム
                                        • おもしろ
                                        • アプリ・拡張機能
                                        • 開発ブログ
                                        • ヘルプ
                                        • お問い合わせ
                                        • ガイドライン
                                        • 利用規約
                                        • プライバシーポリシー
                                        • 利用者情報の外部送信について
                                        • ガイドライン
                                        • 利用規約
                                        • プライバシーポリシー
                                        • 利用者情報の外部送信について

                                        公式Twitter

                                        • 公式アカウント
                                        • ホットエントリー

                                        はてなのサービス

                                        • はてなブログ
                                        • はてなブログPro
                                        • 人力検索はてな
                                        • はてなブログ タグ
                                        • はてなニュース
                                        • ソレドコ
                                        • App Storeからダウンロード
                                        • Google Playで手に入れよう
                                        Copyright © 2005-2025 Hatena. All Rights Reserved.
                                        設定を変更しましたx