前提・実現したいこと
プログラミング超入門レベルの者です。
Jupyter Labで、seleniumライブラリを使い、あるサイトにログインしプルダウンメニュー選択したりしてその日の情報をいくつか登録する作業を自動化するプログラムのコードを書き、実行できました。
しかし、最後までスムーズに実行される時もあるのですが、
頻繁に途中のプルダウンメニュー選択するコードの所で止まってしまい、以下のエラーメッセージが発生します。
発生している問題・エラーメッセージ
StaleElementReferenceException: Message: stale element reference: element is not attached to the page document (Session info: chrome=84.0.4147.135)
該当のソースコード
Python3
1from selenium import webdriver 2import time 3import pandas as pd 4browser = webdriver.Chrome(executable_path = 'C:\Users\ドライバ保存パス') 5browser.implicitly_wait(3) 6print("GoogleChromeを起動しました") 7url_login = "http://ログインしたいサイトURL" 8browser.get(url_login) 9time.sleep(3) 10print("ログインページにアクセスしました") 11USER = "ログインユーザー名" 12PASS = "ログインパスワード" 13element = browser.find_element_by_id('code') 14element.clear() 15element.send_keys(USER) 16element = browser.find_element_by_id('password') 17element.clear() 18element.send_keys(PASS) 19print("ログイン情報をフォームに入力しました") 20frm = browser.find_element_by_xpath('/html/body/div/div[2]/div[2]/div[1]/form/p[3]/input[1]') 21time.sleep(1) 22frm.click() 23print("ログインボタンをクリックしました") 24apply_frm = browser.find_element_by_xpath('/html/body/div/div[2]/div[2]/div/ul/li[4]/a') 25time.sleep(1) 26apply_frm.click() 27print("本日の情報入力コーナーへのボタンをクリックしました") 28from selenium.webdriver.support.ui import Select 29apply_dropdown = browser.find_element_by_name('applicationBean.annualVacationId') 30time.sleep(1) 31#ここまでは毎度スムーズに実行されます。 32#次の行でエラーが出て止まってしまいます。 33apply_select_dropdown = Select(apply_dropdown) 34apply_select_dropdown.select_by_value('19'); 35print("プルダウンメニューから選択したいメニューを選択しました")
試したこと
コードを2つのセルに分けて実行しましたら、うまく実行されます。
(エラーで止まる直前までとそれ以降(下記)のコードに別のセルに分けて書いて実行するとうまく実行されました。)
from selenium.webdriver.support.ui import Select apply_dropdown = browser.find_element_by_name('applicationBean.annualVacationId') time.sleep(1) apply_select_dropdown = Select(apply_dropdown) apply_select_dropdown.select_by_value('19'); print("プルダウンメニューから選択したいメニューを選択しました") ### 補足情報(FW/ツールのバージョンなど) OS:windows10Pro Anaconda Jupyter labのPython3使用 以上、2回に分けてではなく1回でまとめて最初から最後までスムーズに実行できるようにするには何を確認すればよいか、原因わからず、アドバイスいただけますと幸いです。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/28 01:21