python初心者です。
自作関数の作り方について質問があります。
私は、バイト先で毎日入力しなければならない検温システムが面倒臭く、自動ログインと体温入力の自動化を行おうと奮闘中です。
一応、コーディングと実装まで出来て、問題なく動いたので、関数としてまとめました。
しかし、作った関数を実行すると、エラーは出ないのですが、プログラムが完了せずに勝手に消えてしまいます。関数にする前に、作ったコードをコピペしたので、写し間違いはないと思っています。
なぜ、関数化するとプログラムが完了する前にウィンドウが消えてしまうのでしょうか?
どなたか分かる方がいらっしゃいましたらご回答よろしくお願いします。
-------------------------------コードの内容--------------------------------------------------------------
from selenium import webdriver
from time import sleep
from selenium.webdriver.support.select import Select
from selenium.webdriver.chrome import service as fs
from selenium.webdriver.common.by import By
from selenium.webdriver.common.alert import Alert
#ログイン情報
USER = ユーザ名
PASS = password
CHROMDRIVER = "C:/Users/Yuuki/ウェブスクレイピング/chromedriver.exe"
#ログインページにアクセス
url_login = "https://www.smart-kenon.jp/hapifull/m/page/login_mobile.jsp;jsessionid=C0DC5D7A20ED2E3EC2327F255C50DF42"
browser.get(url_login)
sleep(3)
print("ログインページにアクセスしました")
#自動ログイン
elem_username = browser.find_element(By.ID,'user')
elem_username.send_keys(USER)
elem_pass= browser.find_element(By.ID,'password')
elem_pass.send_keys(PASS)
sleep(1)
elem_login= browser.find_element(By.ID,'submit')
elem_login.click()
sleep(1)
elem_new_create = browser.find_element(By.ID,'sidA_NEW')
elem_new_create.click()
sleep(1)
elem_select = browser.find_element(By.ID,'sidTEMP')
import random
indexNum = [11,12,13,14,15,16,17]
select = Select(elem_select)
select.select_by_index(random.choice(indexNum))
sleep(1)
elem_complete = browser.find_element(By.ID,'sidA_INS')
elem_complete.click()
Alert(browser).accept()
#ログインページの取得
chrome_service = fs.Service(executable_path =CHROMDRIVER )
browser = webdriver.Chrome(service=chrome_service)
browser.get("https://www.google.com/")
browser.implicitly_wait(3)
#自動ログイン
elem_username = browser.find_element(By.ID,'user')
elem_username.send_keys(USER)
elem_pass= browser.find_element(By.ID,'password')
elem_pass.send_keys(PASS)
sleep(1)
elem_login= browser.find_element(By.ID,'submit')
elem_login.click()
sleep(1)
elem_new_create = browser.find_element(By.ID,'sidA_NEW')
elem_new_create.click()
sleep(1)
elem_select = browser.find_element(By.ID,'sidTEMP')
import random
indexNum = [11,12,13,14,15,16,17]
select = Select(elem_select)
select.select_by_index(random.choice(indexNum))
sleep(1)
elem_complete = browser.find_element(By.ID,'sidA_INS')
elem_complete.click()
Alert(browser).accept()
-----------------------------------------------
関数にまとめたものが以下になります。これを実行すると完了前にウィンドウが消えます。
python
1def job(): 2 USER = USER 3 PASS = Password 4 CHROMDRIVER = "C:/Users/Yuuki/ウェブスクレイピング/chromedriver.exe" 5 chrome_service = fs.Service(executable_path =CHROMDRIVER ) 6 browser = webdriver.Chrome(service=chrome_service) 7 browser.get("https://www.google.com/") 8 browser.implicitly_wait(3) 9 url_login = "https://www.smart-kenon.jp/hapifull/m/page/login_mobile.jsp;jsessionid=C0DC5D7A20ED2E3EC2327F255C50DF42" 10 browser.get(url_login) 11 sleep(3) 12 elem_username = browser.find_element(By.ID,'user') 13 elem_username.send_keys(USER) 14 elem_pass= browser.find_element(By.ID,'password') 15 elem_pass.send_keys(PASS) 16 sleep(3) 17 elem_login= browser.find_element(By.ID,'submit') 18 elem_login.click() 19 sleep(3) 20 elem_new_create = browser.find_element(By.ID,'sidA_NEW') 21 elem_new_create.click() 22 sleep(3) 23 elem_select = browser.find_element(By.ID,'sidTEMP') 24 import random 25 indexNum = [11,12,13,14,15,16,17] 26 select = Select(elem_select) 27 select.select_by_index(random.choice(indexNum)) 28 sleep(3) 29 elem_complete = browser.find_element(By.ID,'sidA_INS') 30 elem_complete.click() 31 Alert(browser).accept() 32 33 34job()
python(上手く作動するプログラム)
1def job(): 2 USER = 20364 3 PASS = 203641213 4 CHROMDRIVER = "C:/Users/Yuuki/ウェブスクレイピング/chromedriver.exe" 5 6 sleep(1) 7 chrome_service = fs.Service(executable_path =CHROMDRIVER ) 8 browser = webdriver.Chrome(service=chrome_service) 9 browser.get("https://www.google.com/") 10 browser.implicitly_wait(3) 11 12 sleep(1) 13 url_login = "https://www.smart-kenon.jp/hapifull/m/page/login_mobile.jsp;jsessionid=C0DC5D7A20ED2E3EC2327F255C50DF42" 14 browser.get(url_login) 15 16 sleep(1) 17 elem_username = browser.find_element(By.ID,'user') 18 elem_username.send_keys(USER) 19 elem_pass= browser.find_element(By.ID,'password') 20 elem_pass.send_keys(PASS) 21 22 sleep(1) 23 elem_login= browser.find_element(By.ID,'submit') 24 elem_login.click() 25 26 sleep(1) 27 elem_new_create = browser.find_element(By.ID,'sidA_NEW') 28 elem_new_create.click() 29 30 sleep(1) 31 elem_select = browser.find_element(By.ID,'sidTEMP') 32 import random 33 indexNum = [11,12,13,14,15,16,17] 34 select = Select(elem_select) 35 select.select_by_index(random.choice(indexNum)) 36 37 sleep(3) 38 elem_complete = browser.find_element(By.ID,'sidA_INS') 39 elem_complete.click() 40 41 sleep(3) 42 Alert(browser).accept() 43 a


回答1件
あなたの回答
tips
プレビュー