Pythonで手作業自動化

#キー操作自動化
ブラウザに入力された内容の/を?にするだけの作業があったので自動化することに...tabで移動とかめんどくさいけどurlなので/の一括置換もできない...
そこで以下スクリプトを書いて
```$ python auto_key_type.py　5```
とかしてターミナルで起動後、１秒以内にブラウザに移動すると５回分の操作を勝手にやってくれる！
下のプログラムはchromeのタブを行ったり来たりしてGoogle Spreadsheetの内容を一行づつコピペしてくるやつです

``` py:auto_key_type.py
import pyautogui as pgui
from time import sleep
import sys

args = sys.argv

sleep(1)
pgui.FAILSAFE = True
for i in range(int(args[1])):
    pgui.typewrite(['right'])
    pgui.hotkey('option', 'left')
    pgui.hotkey('option', 'left')
    pgui.typewrite(['backspace', '?', 'tab', 'tab'])
```

```py:mouse_cp_paste.py
import pyautogui as pgui
from time import sleep
import sys

args = sys.argv

sleep(1)
pgui.FAILSAFE = True

# 必要に応じてpathを増やす
movie_num = int(args[1])
movie_num -= 10
while( movie_num > 0 ):
    print(movie_num)
    pgui.hotkey('command', 'down')
    pgui.moveTo(613, 673, duration=0.1)
    pgui.click(613, 673)
    movie_num -= 5
    sleep(1)

# マウス移動
pgui.moveTo(350, 350, duration=0.1)
pgui.dragRel(500, 0, duration=0.1)
pgui.hotkey('command', 'c')
pgui.typewrite(['tab'])
pgui.hotkey('command', 'v')
pgui.typewrite(['n', 'o', 'k', 'o', 'u', 'g', 'i', 'enter'])
pgui.typewrite(['tab','tab','tab','tab','tab','tab','tab','tab','tab','tab'])
pgui.typewrite(['down', 'down', 'enter'])

sleep(1)
for j in range(23):
    pgui.typewrite(['tab'])
sleep(1)
# spreadsheetからコピー
for i in range(int(args[1])):
    pgui.hotkey('command', '2')
    pgui.hotkey('command', 'c')
    pgui.typewrite(['down'])
    pgui.hotkey('command', '3')
    pgui.hotkey('command', 'v')
    pgui.typewrite(['tab', 'tab'])


# 確認ボタンを押す
pgui.click(10, 703)
pgui.hotkey('command', 'down')
pgui.moveTo(590, 703, duration=0.1)
sleep(0.1)
pgui.click(590, 703)



```

#Selenium
```login_then_input.py
import pyautogui as pgui
from time import sleep
import sys
# import pyperclip
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
from selenium.webdriver.support.ui import Select
import os
import pandas as pd
import mojimoji
import re

class Register( object ):
    name = ""

    def __init__( self, args ):
        self.name = args[1]    


    def get_dir_list( self, dir ):
        dir_list = os.listdir(dir)
        return dir_list

    def login( self ):
        self.driver = webdriver.Chrome()
        self.driver.get('ログインページのURL')

        # ID/PASSを入力
        id = self.driver.find_element_by_id("UserName")
        id.send_keys("ユーザ名")
        password = self.driver.find_element_by_id("Password")
        password.send_keys("パスワード")

        time.sleep(1)

        # ログインボタンをクリック
        login_button = self.driver.find_element_by_name("LoginButton")
        login_button.click()

        # サイト内で他の画面に遷移させたければ

        self.driver.get( "URL" )
    
    def search_kouza( self ):
        # 選択
        select_choice_num = self.driver.find_element_by_id("")
        select_choice_num = Select(select_choice_num)
        select_choice_num.select_by_visible_text( self.name)

        # 検索をクリック
        search_button = self.driver.find_element_by_name("")
        search_button.click()
        
        

    
    def change_content( self ):

            # 変更
            input_q = self.driver.find_element_by_name("")
            # input に入力されている文字列
            # q_num = input_q.get_attribute('value')[-5:]
            input_q.clear()
            input_q.send_keys( self.name )

            # 確認を押す
            confirmation_btn = self.driver.find_element_by_name("")
            confirmation_btn.click()

            # 登録ボタン
            register_button = self.driver.find_element_by_name("")
            register_button.click()

            # 一覧に戻る
            register_button = self.driver.find_element_by_name("")
            register_button.click()

    def main(self):
        sleep(10000)
        pgui.FAILSAFE = True

        

if __name__ == "__main__":
    # コマンドライン引数
    args = sys.argv

    rq = Register( args )

    rq.login()

    print(rq.name)
    rq.change_content()
    rq.main()
```
https://qiita.com/mochio/items/dc9935ee607895420186