以下のソースは、http://jp.demo.highlow.net/ を開いて、添付図に赤い四角で囲んだ部分です。
必要に応じて素の部分を選択又はクリック等をしたいと思いますので、uwsを使って自動的行う場合のコードを教えて下さい。
なお、ソースはchromeブラウザを使って取得したものです。
----------------------------------------------------------
①「ON DEMAND」 タブを押す。
<span id="ChangingStrikeOOD" class="highlow">ON DEMAND</span>
②「FX」タブを押す
<div class="tab last selected" style="display: inline-block;">
<span>FX</span>
</div>
③「通貨選択」タブを押して、4種類の通貨の1つを選択する。
AUDJPYの選択する場合のコード・・・
EURJPYの選択する場合のコード・・・
GBPJPYの選択する場合のコード・・・
USDJPYの選択する場合のコード・・・
<select id="assets"><option value="All" selected="selected">All</option><option
value="AUDJPY">AUD/JPY</option><option value="EURJPY">EUR/JPY</option><option
value="GBPJPY">GBP/JPY</option><option value="USDJPY">USD/JPY</option></select>
以上
どうぞ
// クイックデモにログインしていること // IEを自動制御するUWSCコードの参考 // http://q.hatena.ne.jp/1388102098 // http://d.hatena.ne.jp/language_and_engineering/20140204/controlIeBrowserbyUWSC // アクセスしたいページのURL url = "http://jp.demo.highlow.net/" // 新規IEオブジェクトを作成 ie = createOLEobj("InternetExplorer.Application") // 起動中のIEを見えるように ie.visible = True wid = hndtoid( ie.hwnd ) acw( wid ) // 対象ページを開く ie.navigate( url ) ie_wait( ie ) // ON DEMANDタブをクリック odtab = gid( ie, "ChangingStrikeOOD") odtab.click() sleep( 0.5 ) // 資産カテゴリのタブの入れ物 asset_div_container = gid( ie, "assetsCategoryFilterZoneRegion") // その中のタブ全部を取得 asset_tabs = asset_div_container.getElementsByTagName("div") // その中の最後のタブ fx_tab = asset_tabs.Item( asset_tabs.length - 1 ) // をクリック fx_tab.click() sleep( 0.5 ) // 通貨切り替えボックス内の何番目を押したいか(0番目から) cur_index = 2 // ALL // AUDJPY // EURJPY // GBPJPY // USDJPY // 通貨切り替えボックスを操作 // ※mouseupイベントなど複雑なので単純なクリックだけでは無理 cur_box = gid( ie, "assets") cur_box.focus() sleep( 0.5 ) for i = 0 to cur_index - 1 kbd( VK_DOWN, CLICK, 100 ) sleep( 0.5 ) next KBD(VK_RETURN,CLICK,100) sleep( 0.5 ) cur_box.blur() // 該当する通貨のパネル部分を取得 panel = gid( ie, "carousel") // パネルの中の要素を分析して表示 span_return_rate = tag_and_class( panel, "span", "returnRate" ) //msgbox( span_return_rate.innerText ) span_strike = tag_and_class( panel, "span", "strike" ) //msgbox( span_strike.innerText ) // HIGHボタンを押す high_btn = gid( ie, "up_button" ) high_btn.click() sleep( 2 ) // LOWボタンを押す low_btn = gid( ie, "down_button" ) low_btn.click() sleep( 2 ) // 量を入力 amount_box = gid( ie, "amount" ) amount_box.value = "10000" sleep( 1 ) // 今すぐ購入 invest_btn = gid( ie, "invest_now_button" ) invest_btn.focus() sleep( 1 ) KBD(VK_RETURN,CLICK,100) sleep( 1 ) // プロセス中→Successと表示される msgbox("完了") // 以下は関数 // IEがビジー状態の間待ちます procedure ie_wait( ie ) repeat sleep( 0.1 ) until ( ! ie.busy ) and ( ie.readystate = 4 ) sleep( 0.2 ) fend // getElementById function gid( ie, dom_id ) result = ie.document.getElementById( dom_id ) fend // タグ名とクラス名を指定して最初の1つだけ要素を返す function tag_and_class( parent, tag_name, class_name ) tags = parent.getElementsByTagName( tag_name ) for i = 0 to tags.length - 1 ifb tags.Item( i ).getAttribute("class") = class_name then result = tags.Item( i ) endif next fend
いつもご教授頂きまして有り難うございます。
2014/05/29 19:27:18また、今回は厚かましく回答リクエストを出させて頂きましたがご迷惑ではなかったでしょうか。
2番目、3番目の回答も一緒にして頂きましたので、ポイントは別途送らせて頂きたいと思います。
ご教示頂きましたコードで動かしてみますので少々お待ち下さい。
>回答リクエスト
2014/05/29 20:15:58→とくに煩わしいようなことはありませんのでご心配なく。
はてなの個人設定でも,「UWSC」などのキーワードを含む質問が投稿されたらメールが来るように設定してあります。
ただ離席中などで回答がつかない場合はご容赦ください。
コードに修正が必要な場合はコメントでお知らせください