技術と魚

雑感と備忘録

技術

selenium-side-runnerでinput[type=file]がhiddenとなっているタイプのファイルアップロードをどうにかする

おしゃれなアップロードボタンは、inputを隠してダミーボタンを経由してinteractしているだけなのでseleniumがinvisibleなelementを操作できず死ぬ。 こんな感じのエラーになる ElementNotInteractableError: element not interactable ダミーボタンのclick…

Promiseのスタックトレースが分かりにくい時はbluebirdが使える

JavaScriptのPromiseによる非同期を経由すると、エラー発生時に非同期の呼び出し元以前のスタックトレースが出力されないので、デバッグに困ることがあった。 けど調べてみたらbluebird*1のlong stack trace機能を使えばそれも含めて出してくれるっぽいとい…

軽く触ったことがあるプログラミング言語を「出来る」って言うのやめます

僕が出来る言語は所詮RubyとJavaScriptぐらいだ。 触ったことある言語だったら十数個ある。仕事上ならScalaもPythonもせいぜい1000行超えるぐらいは書いた。 一応大学院での研究内容は普遍的なプログラミングの理論であることもあった。お蔭で各言語を使い始…

Fetch APIでファイルをアップロードする時にContent-Typeを指定しないほうが良い

ハマったので調べました。 Fetch APIの仕様上、ファイルアップロードをする際はContent-Typeヘッダに multipart/form-data を手動で指定する必要はない。 multipart/form-data は、Requestデータが通常のフォーマットのままではContent-{Type,Disposition}と…