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

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

新規登録して質問してみよう
ただいま回答率
85.46%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

0回答

1138閲覧

Selenium + Python + ChromeでCSVを取得したい

BuhKeil

総合スコア34

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2021/10/13 02:29

やりたいこと

ジョンソンマッセイが公開している貴金属価格を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として保存させるためには、どのような表記を追加あるいは修正する必要があるのか解りません。
どなたか、アドバイスをお願いします。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問