嵌ったのでメモ。
POSTでform-dataを選び、keyの右側あたりにカーソルを当てるとTextと出るのでここをFileに変更。
するとファイル選択ボタンが出るのでここでファイルを選択。
keyはfileで良い模様。
嵌ったのでメモ。
POSTでform-dataを選び、keyの右側あたりにカーソルを当てるとTextと出るのでここをFileに変更。
するとファイル選択ボタンが出るのでここでファイルを選択。
keyはfileで良い模様。
Win + Ctrl + Cを押下すれば直る。
具体的にはWindows10のカラーフィルターのショートカットになっているので、再度ショートカットを入力してフィルターをオフにしてやればいい。
コピーしようとしたときにたまたま押下してしまって、ケーブルの接触とか疑って無駄に時間取られた…。
一回再起動したらロック画面は普通にカラーだったから気づけたけども。
せめてカラーフィルターがかかったことくらい表示してほしい。
https://support.microsoft.com/ja-jp/help/4041722/windows-10-use-color-filters
日本のナンバープレートの入力を正規表現で検証してみる。
こちらはGoogleフォームの検証機能で使用した。JavaScriptと同じ仕様?
Googleフォームで使用する場合は最初と最後の/を省く必要があるみたい。
これ↓
^[\u30a0-\u30ff\u3040-\u309f\u3005-\u3006\u30e0-\u9fcf]+[a-zA-Z0-9]{1,3}[\u3040-\u309f]{1}[0-9]{1,4}$
入力例としては下記のようになる
品川100あ1234
順に、地名、分類番号、用途、一連指定番号をそれぞれ文字、3桁までの数字とアルファベットの組み合わせ、ひらがな1文字、4桁までの数字として検証している。
javascriptのarrayにはremoveはないのでspliceを使用する。
const ary = [1, 2, 3] ;
ary.splice(0, 1);
console.log(ary); // [2, 3]
spliceは配列に対して、第1引数のindexから、第2引数の数だけ要素を排除する。
Array.prototype.splice() - JavaScript | MDN
なので、削除するためにはindexが必要。
値から削除するためにはindexOfを使う。
const ary = [1, 2, 3] ;
const index = ary.indexOf(1); // 1を削除する
ary.splice(index, 1);
console.log(ary); // [2, 3]
Objectの配列からオブジェクト内のフィールドの値を参照して削除したい場合、indexOfでは取得できないのでfindIndexを使う。
const ary = [{ key: 1, value: 'hoge'}, { key: 2, value: 'moge'}, {key:3, value: 'piyo'}];
const index = ary.findIndex(x => x.key === 1);
ary.splice(index, 1);
console.log(ary); // [{key:2, value: 'moge'}, {key:3, value: 'piyo'}]
ただしfindIndexはIEでは動作しないことに注意。
Array.prototype.findIndex() - JavaScript | MDN
ブラウザのテストや操作を自動化出来るSeleniumを試してみた。
環境はWindows10とPython3。
pipでseleniumをインストール
pip install selenium
下記サイトから各OS用のChromeDriverを入手(記事時点では2.33)
Windowsの場合はダウンロードしたzipを解凍してchromedriver.exeを適当な場所に配置。
Chromeで楽天ブックスのウルトラサンをカートに入れて購入手続き、ログインまで進むコードです。
from selenium import webdriver
from selenium.webdriver.common.keys import Keysbrowser = webdriver.Chrome(executable_path='設置したchromedriver.exe')
# ポケモンウルトラサン
browser.get('https://books.rakuten.co.jp/rb/15142601/')
# カートに追加
browser.find_element_by_class_name('new_addToCart').click()
# 購入手続きへ
browser.find_element_by_id('js-cartBtn').click()#ユーザーID
browser.find_element_by_name('u').send_keys('user_id')
#パスワード
browser.find_element_by_name('p').send_keys('password')
#次へボタン→購入確定画面へ
browser.find_element_by_name('submit').click()
実行するとChromeが新しいウィンドウで立ち上がり、上記の操作を順番に実行していきます。
立ち上がるウインドウは新規ウインドウになり、セッション等は初期化される模様。
また「Chromeは自動テストソフトウェアによって制御されています。」という表示が出ます。
各コード内の要素はChromeのデベロッパーツール→Elementsタブで画面を見ながら要素を辿っていくことで見つけることが出来ます。
Pythonでテスト自動化を実現しよう(unittest Jenkins Selenium 活用編)
Qiitaに投稿しました。
認証とかいろいろ面倒くさくて大変。
Developer Consoleの見た目がいろいろ変わってて、目的の画面にたどり着けなかったりして、疲れたorz
GASなら簡単にできるのになー(笑)