![見出し画像](https://assets.st-note.com/production/uploads/images/89398302/rectangle_large_type_2_70b773e9d97b948bf0d3b45296e41306.png?width=1200)
在オン(ザイオン=ZION)入力自動化計画第2段‐プログラムの考え方-
いよいよPythonプログラムを組むのですが、その時の考え方を解説しておきます。
とりあえず、申請の種類と在留資格の種類を入力した後に出る1ページ目の自動入力だけを基本的に考えていきます。
0、ページごとに違うプログラムを動かす
ZIONの仕様は、各申請毎に、各在留資格ごとに、別の情報をページ毎に入力していくという感じになっています。
ですから、本来であれば、すべての在留資格の分類ごとに、違うプログラムが必要となります。
ただし、一方で、情報を入力する1ページ目は、ほぼすべての申請、在留資格で共通です。
(たぶん違うのは、認定や身分系には「住民税納付額」が無いくらいです)
2ページ目は認定と、更新と、変更で必要な情報が違います。
認定が一番情報が多いのですが、言っても3つしか無いので、必要な情報とIDの対応表の中に、認定、更新、変更の3ブロック作っても問題はなさそうです。
鬼門は3ページ目ですが、これは在留資格によって違うので、共通のプログラムではなく、在留資格ごとに違うプログラムが必要だと思っています。
ですから、3ページ目は手で入力することを基本として、良くやる技術・人文知識・国際業務あたりの自動入力プログラムを公開しようと思います。
ただ、3ページ目を出すためには、真正なる名前と在留カード番号の情報が必要でして、捨て情報ではたどり着けません。
つまり、3ページ目に進むのは、結構しんどいので、皆さんがお手すきの時に新しくプログラムを組んでくださると助かります(丸投げ)。
1、最も簡単なのは、ただのフォームの入力
Pythonでは、IDでフォームを検索して、そこに値を入力する事ができます。
(x_pathを使うともっと良いらしいのですが、私はfind_element(By_ID)でプログラムを組んでしまいました)
ですから、フォームのIDを予め取得しておいて、それに対応する値をエクセルでまとめておけばいいということです。
つまり、入力項目とIDと入力の値の対応表を一つのエクセルにまとめておきます。
例えば、ZIONの1ページ目に出てくる本人の氏名のフォームIDは、「wccbs010dto-txtname」で固定されています。
pythonで動かすときは、フォームIDが「wccbs010dto-txtname」であるフォームに、対応表から値として取得した『DAISUKE,TSUJI』を入れろと、命令すればよいわけです。
2、年月日は、プルダウンメニューの値を選択させる
Pyhtonは、プルダウンメニューも指定することができて、年月日は数字なのでその値で検索することが最も容易です。
プルダウンメニューも、一つ一つIDが割り振られています。
例えば、申請人の生まれた年は、「wccbs010dto-seldateofbirthyear」となっています。
ですから、プルダウンメニューIDが「wccbs010dto-seldateofbirthyear」のプルダウンメニューに、対応表から値として取得した『2010』を指定すればよいわけです。
月、日も同じですが、頭に0が付く(1月は、01と表現する)のに気をつけるだけです。
3、国籍や続柄はちょっとめんどくさい
手でやるとめんどくさいという悪名高き「国籍」ですが、ZIONのソースファイルを見ると、すべての国に番号が振ってあることがわかります。
例えば、日本は900番であったり、無国籍は401番です。
ということは、まず、国と番号の対応表の一覧のエクセルファイル(country.xlsx)を作っておきます。
そして、対応表に打ち込んである国の名前を国籍一覧表から検索し、その国籍に対応している番号を取得、さらにその番号で、特定のIDのプルダウンメニューを指定すれば、OKということです。
同じように、1ページ目に在日親族の情報の中に続柄があります。
これも、すべての続柄で番号が割り振られています。
例えば、夫は03番、配偶者の子は20番とかです。
ですから、続柄も入力されている続柄の文字を、続柄番号対応表ファイル(tuzukigara.xlsx)から探して、対応する番号に直して、特定IDのプルダウンメニューをその番号で指定すれば、出来るということになります。
国籍の番号対応表と、続柄と番号の対応表は、後で置いておきます。
4、ラジオボタンは、クリックするという操作
男・女や、犯罪歴有・無、在日親族の有・無は、ラジオボタンになっています。
これらは、デフォルトで選択されているラジオボタンと同じである場合は、そのままにして、
違うときには、違う方のラジオボタンを押すという操作をPythonにやらせます。
これもラジオボタンごとにIDが割り振られているので、IDで検索して、そこをクリックすると命令させれば実装可能です。
5、唯一「申請人住所地の前」は手でやるしか
ZIONの仕様では、申請人の住所地と、所属機関の住所地は、管轄の入管を決定する上で重要な情報のため、自由に入力できず選択式になっています。
しかも、ボタンを押すと違う場所にウィンドウが開いて、そこから選んでいくという鬼仕様です。
せめて普通のプルダウンメニューにしてほしかったのですが、なんなんでしょうか…。
これももちろん、別ウィンドウが開いても、そこからPythonで自動化することも出来ますが、
また別のプログラムを動かすことになるので、辞めておいて、これだけは手で入力することにします。
だれか、是非、実装してください‥。
6、結論
さて、今回は、組もうとしているZIONの自動転記Pythonプログラムの考え方を解説してきました。
次に、やっとPage1の実際の自動転記プログラムを見ていきたいと思います。