質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.06%

import_ipynbを外部ファイルより使いたい

受付中

回答 0

投稿

  • 評価
  • クリップ 0
  • VIEW 351

score 2

構成分を少なくするためにjupiter lab 
で作成したファイルを別のファイルで呼び出したいと考えておりますが、うまくいきません。chromedriver動作ファイル
googleを開く閉じる程度の動作は成功しましたが 長文かログインなどがあるからか呼び出しに反応しません。
呼び出すファイルと呼び出されるファイルを載せてみましたのでどなたかわかる方はご教示お願いいたします。
ちなみに安否報告の自動化についてのスクレイピングファイルを構築しようと考えております。
質問文がインデントが設定できずみづらくすいません。

呼び出すファイル anpi2.ipynb

import import_ipynb
import anpi2
anpi2.anpi()
anpi2.anpi()

呼び出されるファイル anpi2.ipynb

def anpi():

import time
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from time import sleep
import requests

def start_chrome():

#chromedriverのPATHを指定(Pythonファイルと同じフォルダの場合)
driver_path = '/Users/nishiharakeita/Desktop/selenium/chromedriver'
#Chrome起動

driver = webdriver.Chrome(executable_path=driver_path)
driver.maximize_window() # 画面サイズ最大化

#安否報告ログインURL
url = 'https://www.sys.mc-anpi.com'
driver.get(url)

return driver

def login_anpihoukoku(driver):

#ログイン情報
login_id  = ”○○○○○○"
login_pw  = "○○○○○○"
login_pw2 = "○○○○○○"

#最大待機時間(秒)
wait_time = 30

#IDを入力
login_id_xpath = '//*[@id="cmpcd"]'
#xpathの要素が見つかるまで待機します。
WebDriverWait(driver, wait_time).until(EC.presence_of_element_located((By.XPATH, login_id_xpath)))
driver.find_element_by_xpath('//*[@id="cmpcd"]').send_keys(login_id)

wait_time = 5

#ID入力
login_pw_xpath = '//*[@id="usrcd"]'
#xpathの要素が見つかるまで待機します。
WebDriverWait(driver, wait_time).until(EC.presence_of_element_located((By.XPATH, login_pw_xpath)))
driver.find_element_by_xpath('//*[@id="usrcd"]').send_keys(login_pw)

#パスワード2を入力
login_pw2_xpath = '//*[@id="password"]'
#xpathの要素が見つかるまで待機します。
WebDriverWait(driver, wait_time).until(EC.presence_of_element_located((By.XPATH, login_pw_xpath)))
driver.find_element_by_xpath('//*[@id="password"]').send_keys(login_pw2)
time.sleep(1) # クリックされずに処理が終わるのを防ぐために追加。
driver.find_element_by_xpath(login_pw2_xpath).click()

element = driver.find_element_by_xpath('//*[@id="btn-login"]')
element.click()

element = driver.find_element_by_xpath('//*[@id="menu-ap02"]')
element.click()

#スリープ機能を使用することで問題解決
sleep(2)

element = driver.find_element_by_xpath('//*[@id="tbl-dept-grplist"]/tbody/tr/td[3]/a')
element.click()

element = driver.find_element_by_xpath('//*[@id="ans1"]/label[1]')
element.click()

element = driver.find_element_by_xpath('//*[@id="ans2"]/label[1]')
element.click()

element = driver.find_element_by_xpath('//*[@id="ans3"]/label[1]')
element.click()

element = driver.find_element_by_xpath('//*[@id="btn-update"]')
element.click()

#スリープ機能を使用することで問題解決
sleep(2)

element = driver.find_element_by_xpath('//*[@id="btn-confirm-ok"]  ')
element.click()

if name == 'main':
#Chromeを起動
driver = start_chrome()

#安否報告にログイン
login_anpihoukoku(driver)

def SendMessage():
line_notify_token = "WUn4hZewRWShFm9DbnNDnj3CdXam19tdAZee3h1TQ4L"
line_notify_api = "https://notify-api.line.me/api/notify"
message = "安否報告完了"

payload = {"message":message}  #メッセージの本文
headers = {"Authorization":"Bearer " + line_notify_token}
line_notify = requests.post(line_notify_api, data = payload, headers = headers, )

if name == "main":
SendMessage()
print("Successful")

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.06%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る