やりたいこと
ジョンソンマッセイが公開している貴金属価格をCSVで取得したいです。
URL = http://www.platinum.matthey.com/prices/price-charts
環境
- windows10 64bit
- Python v3.9.4
- Google Chrome 94.0.4606.71(Official Build) (64 ビット)
- Selenium v3.141.0
- Chrome WebDriver v94用 (Win32)
- Selenium IDE v3.17.0
コード
python
1# Generated by Selenium IDE 2import pytest 3import time 4import json 5from selenium import webdriver 6from selenium.webdriver.common.by import By 7from selenium.webdriver.common.action_chains import ActionChains 8from selenium.webdriver.support import expected_conditions 9from selenium.webdriver.support.wait import WebDriverWait 10from selenium.webdriver.common.keys import Keys 11from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 12 13class TEST(): 14 def setup_method(self, method): 15 self.driver = webdriver.Chrome() 16 self.vars = {} 17 18 def quit(self, method): 19 self.driver.quit() 20 21 def getData(self): 22 23 self.driver.get("http://www.platinum.matthey.com/prices/price-charts") 24 self.driver.set_window_size(1391, 1465) 25 26 self.driver.find_element(By.LINK_TEXT, "Platinum").click() 27 28 self.driver.find_element(By.ID, "selectDate").click() 29 dropdown = self.driver.find_element(By.ID, "selectDate") 30 dropdown.find_element(By.XPATH, "//option[. = 'All prices (monthly)']").click() 31 self.driver.find_element(By.LINK_TEXT, "Monthly").click() 32 self.driver.find_element(By.CSS_SELECTOR, ".update-chart > span:nth-child(1)").click() 33 34 self.driver.find_element(By.LINK_TEXT, "CSV").click() 35 36----ここまでがSelenium IDEが出力したPythonコードです。 37 38ここからは、私が作成したコードです。 39test = TEST() 40test.setup_method("POST") 41test.getData() 42test.quit("POST") 43
結果
操作の記録をONにして、CSV保存のダイアログが出てCSVファイルとして保存するところまでを行ってからSTOPし、この内容をPythonコードとして上記のように得ました。
そして、Class定義なので、
test = TEST()
でインスタンスを作成し、あとは、3つのメソッドを順に実行させるコードを書きました。
この際、メソッド内で匹数として"method"があり、何を入力して良いのか解らず、"POST"と入力しました。
"GET"と入力して実行しても同じ結果でした。
実行すると、ChromeのWindowが新しく起動し、クリックしている様子もわかるのですが、
ファイル保存ダイアログが出ることはなく、Windowが消えます。
困っていること
CSVとして保存させるためには、どのような表記を追加あるいは修正する必要があるのか解りません。
どなたか、アドバイスをお願いします。
あなたの回答
tips
プレビュー