発注システム(ruby)のコード作成方法

 発注システムは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, '...#{変数}...')

 という感じです。

 以上、作成したシステムのコード紹介でした。参考になれば幸いです。

コメント

タイトルとURLをコピーしました