今回はChromeDriverでパスワードが必要なページへのアクセスし、例として「エキスパ」のログインからCSVダウンロードのボタンを押してダウンロードするところまでの記事です。
この記事は

の続きで、実際にChromeDriverを起動して、各HTML要素の操作の仕方について書いています。
上記の記事でまずはChromeDriverの起動までできたかと思います。
まずは、復習としてChromeDriverの起動を行います
# クロムを起動
path = os.getcwd() # pythonプログラムが保管されているフォルダパスを取得
Exefile= path + "\\chromedriver.exe"
driver = webdriver.Chrome(executable_path = Exefile)
driver.implicitly_wait(3)
次はログインIDとパスワードを変数として格納します。
USER = "ゆーざーあいでぃー"
PASS = "ぱすわーど"
ログインするサイトへアクセスします。
# ログインページするサイトへアクセス
url_login = "https://exp-t.jp/account/login_operator/expa"
driver.get(url_login)
time.sleep(3)
print("ログインページにアクセスしました")
それぞれの入力フォームにログインIDとパスワードを入力します。
# テキストボックス入力
elem = driver.find_element_by_id('MasterOperatorOperatorCode')
elem.clear()
elem.send_keys(USER)
elem = driver.find_element_by_id('MasterOperatorOperatorPassword')
elem.clear()
elem.send_keys(PASS)
print('フォームを送信')
ここではidを指定して入力するフォームを特定してUSERとPASSを入力しています。
このidの特定の仕方は、Chromeでログインしたいページを開いてF12を押してデベロッパーツールを開きます。

次に下画面の赤丸部分を押して、入力したいボックスを選びます。

するとその部分のHTML要素が分かります。

今回はこのid要素で入力する場所を特定しています。

その他に
- find_element_by_id
- find_element_by_name
- find_element_by_xpath
- find_element_by_link_text
- find_element_by_partial_link_text
- find_element_by_tag_name
- find_element_by_class_name
- find_element_by_css_selector
を指定して、操作をしたいHTML要素を特定する事ができます。詳しくはこちら
どうにもうまくいかないときは、xpathを指定するのが一番やりやすいです。
xpathを特定するのは、知りたい要素を右クリックして
Copy→Copy Xpath
等で指定するのが良いと思います。

入力を完了させた後は、ログインボタンを押します。
このボタンを押すというのもHTML要素を特定して、ボタンを押すという操作になります。(ここでは”name”を指定してボタンを押しています。)
# 入力したデータをクリック
time.sleep(3)
frm = driver.find_element_by_name('exec')
time.sleep(3)
frm.click()
print("情報を入力してログインボタンを押しました")
コマンドは
.click()
を使用しています。
また、入力の合間合間でHTMLの読み込みの時間があるため、
time.sleep(3) # 3秒操作を待つ
で、プログラムが先に動いてしまわないようにしています。
その後は、手動で操作する事をイメージして、クリックや入力を繰り返している流れです。
ログインが成功した後は、ダウンロードボタンのあるページに直接飛んで良いのでこのようなボタンがあるページに飛んで

# ウェブサイトへのアクセスアクセス例
url="https://hogehoge"
time.sleep(1)
driver.get(url)
print(url,":アクセス完了")
としてcsvダウンロードのボタンのidやname,XPath等を特定してクリックするという操作は変わりません。
# csvダウンロードボタンを押すプログラム例
time.sleep(3)
frm = driver.find_element_by_name('csvdl')
time.sleep(3)
frm.click()
print("ボタンをクリックしてCSVのダウンロードを開始する")
こんな感じ。
次回は、ダウンロードしたcsvをPythonにデータフレームとして取り込む方法を書きます。よろしく。
続きはこちら
![]() |
![]() |
---|
コメント