LoginSignup
8
4

More than 5 years have passed since last update.

Pythonで手作業自動化

Last updated at Posted at 2018-08-22

キー操作自動化

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

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'])
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()

8
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
4