Robot Framework(selenium)のWebDriverExceptionエラー対応
Robot Frameworkを久々に使ったら以下のエラーが出た。
発生したエラー
WebDriverException: Message: unknown error: call function result missing 'value' (Session info: chrome=67.0.3396.99) (Driver info: chromedriver=2.34.522932 (4140ab217e1ca1bec0c4b4d1b148f3361eb3a03e),platform=Mac OS X 10.13.5 x86_64)
で、stack overflowをみていると、以下の回答が自分のエラーに近い形だった。
要は、ChromeのバージョンとChromeDriverのバージョンが合ってないとのこと。
確かに、
で確認すると、ChromeDriverに対応したChromeのバージョンは決まっているっぽい。
なので、最新のバージョンをダウンロードして完了。
ちょっとだけハマった...
mixiの日記をバックアップするスクリプトをPythonで書いた
タイトルのままなのですが、mixiの日記を一括で保存したいと思い、スクリプトをPythonで書きました。
数年前に書いていたものをリフレッシュした感じです。
Python3.6のみで動作は確認してます。細かいことはリポジトリにも書いています。
必要な作業としては、
と、いくつか手順を踏む必要があります。
事前準備
2つの作業が必要です。
サービス登録
サービス管理の手順でサービスを追加する必要があります。
注意としては、リダイレクトURL
にhttp://localhost:9999/redirectを設定する必要があります。
また、ここで取得できたConsumer Key
とConsumer Secret
は後々利用します。
mixi日記の一覧ページをダウンロード
日記の一覧を右クリックでダウンロードし、htmlファイルを特定のディレクトリ配下に配置してください。
僕は100件ほどしか日記がなかったので、数回の作業で大丈夫でしたが、いっぱいある人は繰り返し作業が必要です。
これを全て取れるAPIが見つからなかったので知っている人がいれば、教えてください😇
インストール
必要様なスクリプトは以下のコマンドでダウンロードできます。
また、依存ライブラリをインストールする必要があります。
git clone https://github.com/pyohei/extract-mixi-diary.git cd extract-mixi-diary pip install -r requirements.txt # virtualenv上の実行がオススメ
使い方
アクセストークン取得用サーバ起動
APIにアクセスするために、アクセストークンを取得する必要があります。
以下のコマンドを実行し、
python server.py -c `Consumer Key` -s `Consumer Secret`
http://localhost:9999 にアクセスすればアクセストークンを取得できます。
以下の画面が出るので、同意してください。
注意点
mixi日記取得スクリプトの起動
以下のコマンドで実行し、-d
で渡したディレクトリに日記の作成日でファイルが作成されます。
python main.py -o `上記で取得したHTMLを保存しているディレクトリ` -d `保存先ディレクトリ`
ファイルはこんな感じに出力されます。
最後に
結構手順がややこしくて、手動でとったほうが楽だったと感じています...
もともとはmixiを退会するつもりで作ったのですが、自分のPCよりもmixiのサーバーの方が安全だと気付いたので、mixiは継続してます(更新はしてないですが)。
エンジニアじゃない人向けにWebサイトにして、誰でも使える様にすれば良いかなと思ったのですが、需要は極めて低そうなのでこんな感じです。
10人くらいからスターあれば作ろうかな、と。なので、自分もmixiの日記をダウンロードしたいと言う人はスターorコメントください。
参考情報
日本語キーボードのMacでAnkerのキーボードを使った時にCapsLockになってしまった時の対応
一度電源をOFFにしてもう一度電源をつける。
毎度悩むので...
Anker ウルトラスリム Bluetooth ワイヤレスキーボード 【iOS/Android/Mac/Windows対応/長時間稼働】(ホワイト)
- 出版社/メーカー: Anker
- メディア: エレクトロニクス
- この商品を含むブログ (1件) を見る
Ankerのキーボードは普段使いできるので便利です。
Pythonのimport先に飛ぶVimプラグインを作成した
タイトルそのままですが、VimでPythonのimport文に記載したモジュールにジャンプするプラグインを書きました。
こんな感じで動きます。
(3年くらい前に書いて放置していたので作りきりました)
インストール方法
で、pyohei/vim-python-jumping
の設定をお好みのvimプラグインに記載してもらえれば使えます。
使い方
import文の上で :PyImport
と打てば、対象のファイルに飛びます。
キーマップはお好みのキーマップを指定すれば便利です。
(私はキーマップは設定しない組なので)
仕組・制約
仕組みとしては、PYTHONPATHのパス + 現在のファイルのディレクトリから探します。
なので、実行環境にPYTHONPATHを通しておく必要があります。
そのため、init.pyなどでインポートしている系のモジュールもうまく読め込めない事はありますが...
作った背景
Pythonのvimプラグインでシンプルにこの機能を実現するツールが当時はなかったので作りました。
(今あるかは調べれていないですが...)
まぁ、かなりマニア向けなので、興味のある人はぜひどうぞ。
シンプルな画像サーバを作った(Python)
画像一覧をブラウザで見たかったので、Pythonで簡易的なサーバーを書きました。
(実際には数年前に作って放置してたものを作り上げた感じですが)
Pythonで動かす必要があるので、主にエンジニア向けですかね。
サンプル
実際には以下のように確認できます。
一覧画面はこんな感じ(写真は著作権フリーのものを利用しています)。
画像を押すと、以下の様にみれます
使い方
インストール
ソースコードはgitで取得可能です。
git cloen https://github.com/pyohei/simple-image-server cd simple-image-server
pyramidなどの依存ライブラリがあるので、virtualenvを入れることをオススメします。
Python3.6なら、
python -m venv venv source venv/bin/activate
で仮想環境を作る事が可能です(この手順はスキップしても問題ありません)。
環境が作れたら依存ライブラリをインストールします。
pip install -r requirements.txt
以上で環境の設定は終了です。
起動方法
あとは、画像フォルダがあるディレクトリを指定して実行すればOKです
xxxxの箇所に画像フォルダを指定してください。
(ちなみにsample
ディレクトリも用意しているので、簡単に試したい人はどうぞ。)
python server/main.py xxxx
アクセス方法
デフォルトでは http://localhost:8999/login
にアクセスするとログイン画面が表示します。
User: user
, Password: password
でデフォルトはログイン可能です。
ログインするとサンプルに載せた様な一覧画面を見る事ができます。
その他
今ひとつノート型ホワイトボードが自分に向かなかった理由
ノート型ホワイトボード(例えばバタフライボード)を、いくつか試したのですが、今ひとつ合わなかったので、その理由でも書いてみます。
対象読者
- ノート型ホワイトボードを今後利用したいと検討している人
- ノート型ホワイトボードを使っているが、しっくりきてない人
自分自身の使用歴史
- 自作ホワイトボード(気が向いたら作り方書きます)
- ダイソーのノート型ホワイトボード
- バタフライボード
バタフライボード2 A4 ノート型ホワイトボード(0.5mm極細マーカーセット付)
- 出版社/メーカー: バタフライボード
- メディア: オフィス用品
- この商品を含むブログを見る
などを試した結果です。
なぜ使おうと思ったのか?
使う事で生産性が上がるのではないかと考えたためです。
なぜ、合わなかったのか?
理由はいくつかあるのですが、
- ホワイトボードマーカーの管理が面倒
- 蓋を開けっぱなしにしていると、枯れてしまったり
- ペン先が潰れてくる
- 物理ノートも使っていると、ペンの切り替えが面倒
- ペン先が潰れるので、カジュアルに書くことをためらってしまう
- 時間が経つ(1週間とか)と、消すのが結構大変
- ページが足りなくなると強制的に消す必要がある
- (定性的だが)生産性に寄与しないと感じた
と、こんな感じです。
メリットはなかったのか?
そんなことはなく、メリット自体は何個かあり、
- 書いている途中に間違えると軽く消す事ができる
- ノートとは異なり、意識的に消す必要があるので、見返す機会が必ず発生する
- 複数人で考えたりするときには便利
- (バタフライボードについては)マグネット式で固定しておく事ができる
など、目的に合わせて利用するなら、便利なツールです。
今はどうしているか?
まだ、自分の中でもベストな回答はないのですが、
- 物理ノート … 一時的に書いたり、考えたりしたい場合
- 物理付箋 … 忘れないようにすること(一時的)を残すため
- Todoアプリ(Todoist) … 自分のやることの管理
を使っていて、物理ノートに書いたことを保存したい場合は、dropboxなどを使って、ドキュメントにしている感じです。
今の所、使い勝手としては気にはなっていないです。
最後に
色々書きましたが、気になっている人は試してみるのが一番です。
多分バタフライボードは新しいのが出たら書いますが:)
ちなみに、最近はノートの代わりにエバーラストも試しているのですが、その使い勝手はまた機会があれば。