発注システムはrubyで作成していますが、具体的なコードと作成方法を紹介します。仕様としては、あらかじめ用意した銘柄コードと株数を入力したcsvを読み込んで、買いと売りを入れるものとなっています。作成方法の紹介です。
作成したコード
require 'selenium-webdriver'
require 'csv'
csv = CSV.table("./****.csv")
driver = Selenium::WebDriver.for :chrome
driver.get "https://?????"
driver.find_element(:xpath, '%%%%%%%%').send_keys '$$$$$$$'
...省略
k = csv.size
i = 0
while i < k
...省略
driver.find_element(:xpath, '#########').send_keys csv[i][0]
...省略
i += 1
end
コード紹介
require 'selenium-webdriver'
require 'csv'
rubyでselenium webdriver、csvを使えるようにライブラリーから呼び出しています。
csv = CSV.table("./****.csv")
あらかじめ、作成したcsvを読み込んでいます。ちなみにこのcsvには、銘柄コードと何株注文するかの2列で作成しています。
driver = Selenium::WebDriver.for :chrome
driver.get "https://?????"
Selenium webdriverで読み込むブラウザをChormeとして、指定したURLを開きます。
driver.find_element(:xpath, '%%%%%%%%').send_keys '$$$$$$$'
ホームページのxpathの要素が「%%%%%%%」となっている場所に「$$$$$$$」を入力するコードです。send_keys以外にもclick()を使ったりもしています。
xpathの探し方は↓

google chromeから入力したい場所を右クリックして検証を選択

右画面に出てきた検証画面の要素を右クリックしてCopy→Copy Xpathを選択
何故Xpathかと言うと、他の要素では被ることがあり、場所を確定できないことがあるためです。Xpathはページ内に1つしか存在しません。
k = csv.size
i = 0
while i < k
入力したcsvの行数まで繰り返し動作させるようにループさせてます。
driver.find_element(:xpath, '#########').send_keys csv[i][0]
csvに入っているi行1列目のデータを入力しています。
i += 1
end
ループ前にiを一つ増やして、次へとループさせています。
基本的にひたすら要素のXpathを調べて作成していく感じです。ちなみにXpath内に変数を使いたい場合は、#{変数}とすれば使うことも可能です。
driver.find_element(:xpath, '...#{変数}...')
という感じです。
以上、作成したシステムのコード紹介でした。参考になれば幸いです。
コメント