前提・実現したいこと
for文の変数iをウェブサイトから取得したxpathのoption[値]の値に使いたい。
しかし、iを直接入れることは出来なさそうなので、何か他の方法があれば教えていただけると幸いです。
発生している問題・エラーメッセージ
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id="selectPeriod"]/div/div[2]/div[2]/div[2]/select[1]/option[i]"} (Session info: chrome=83.0.4103.97)
該当のソースコード
python
1# -*- coding: utf-8 -*- 2from selenium import webdriver 3import time 4 5driver = webdriver.Chrome() 6html = driver.get("https://www.data.jma.go.jp/gmd/risk/obsdl/index.php") 7time.sleep(1) 8 9#ダウンロードするデータの詳細設定============================================================================== 10#項目を選ぶ 11driver.find_element_by_id('elementButton').click() 12time.sleep(1) 13 14#気温、降水量、風速を選択 15driver.find_element_by_xpath('//*[@id="aggrgPeriod"]/div/div[1]/div[1]/label/input').click() 16time.sleep(1) 17driver.find_element_by_xpath('//*[@id="気温"]').click() 18time.sleep(1) 19driver.find_element_by_xpath('//*[@id="降水量"]').click() 20time.sleep(1) 21driver.find_element_by_xpath('//*[@id="風向・風速"]').click() 22time.sleep(1) 23 24#表示オプションを選ぶ 25driver.find_element_by_id('optionButton').click() 26time.sleep(1) 27driver.find_element_by_xpath('//*[@id="selectOp"]/div[1]/div/div[2]/p/label/input').click() 28time.sleep(1) 29driver.find_element_by_xpath('//*[@id="selectOp"]/div[2]/div/div[1]/p/label/input').click() 30time.sleep(1) 31#================================================================================================== 32 33#期間を選ぶ 34for i in range(2,12): 35 driver.find_element_by_id('periodButton').click() 36 time.sleep(1) 37 driver.find_element_by_xpath('//*[@id="selectPeriod"]/div/div[1]/div[1]/label/input').click() 38 time.sleep(1) 39 driver.find_element_by_xpath( '//*[@id="selectPeriod"]/div/div[2]/div[2]/div[2]/select[1]/option[i]').click() # 年から 40 time.sleep(1) 41 driver.find_element_by_xpath('//*[@id="selectPeriod"]/div/div[2]/div[2]/div[2]/select[2]/option[i]').click() # 年まで 42 time.sleep(1) 43
補足情報(FW/ツールのバージョンなど)
コードは気象×Python 〜AMeDASの地点データ自動取得〜を参考に、作成しています。
気象庁のHPからアメダスの過去のデータを作成する際の期日指定画面の年数をfor文で指定したいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/07 00:51