1401323207 UWSCのコードを教えて下さい。

以下のソースは、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>
以上

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2014/05/29 09:26:47
  • 終了:2014/06/05 09:30:04

回答(1件)

id:language_and_engineering No.1

lang_and_engine回答回数170ベストアンサー獲得回数632014/05/29 17:14:04

ポイント1000pt

どうぞ



// クイックデモにログインしていること


// 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

id:iwana1999

いつもご教授頂きまして有り難うございます。
また、今回は厚かましく回答リクエストを出させて頂きましたがご迷惑ではなかったでしょうか。

2番目、3番目の回答も一緒にして頂きましたので、ポイントは別途送らせて頂きたいと思います。

ご教示頂きましたコードで動かしてみますので少々お待ち下さい。

2014/05/29 19:27:18
id:language_and_engineering

>回答リクエスト
→とくに煩わしいようなことはありませんのでご心配なく。
はてなの個人設定でも,「UWSC」などのキーワードを含む質問が投稿されたらメールが来るように設定してあります。

ただ離席中などで回答がつかない場合はご容赦ください。

コードに修正が必要な場合はコメントでお知らせください

2014/05/29 20:15:58
id:iwana1999

通貨の選択以外は、期待通りの動きでした。

ただ、通貨の選択が希望の通りに動きません、
// 通貨切り替えボックス内の何番目を押したいか(0番目から)
cur_index = 2
// ALL
// AUDJPY
// EURJPY
// GBPJPY
// USDJPY
上記の記述からcur_index = 2 の数値を1,2,3,4と書き換えれば、通貨の種類が上から順番に異なる通貨が選択されると思いましたが、いつもGBPJPYが選択されます。
4つの内の任意の通貨を選択するにはどのようにすれば良いか、ご教示下さい。
宜しくお願い致します。

  • id:language_and_engineering
    変ですね。IE11で,クイックデモ画面では
    正常に通貨を切り替えることができています。
  • id:iwana1999
    そうですか、私もIE11なのですが正常に動いているという事でしたらもう少し確認して見ます。

    また、コメントで回答頂きました質問分のポイントを送ろうとしましたが受け取って頂けない様ですのでありがたく甘えさせて頂きます。

    今後とも宜しくお願い致します。
  • id:iwana1999
    lang_and_engine 様


    お世話になります。

    通貨選択は、予定通り旨く行きましたのでご報告致します。

    有り難うございました。
  • id:language_and_engineering
    動作したならばよかったです。
    その箇所は自動化しづらい細工が施されています。

    >ポイントを送ろうとしましたが受け取って頂けない...
    ポイント関連では特に何もしていないのですが,なにかご不便をかけたでしょうか,その場合はすみません。
  • id:iwana1999
    lang_and_engine 様

    合計2500ポイント分の質問を1つの回答にまとめて頂ましたので、差額をポイント送信でお送りしましたところ、受信拒否されているようなメッセージが出ました。

    システム不良の問題かどうか、再度送信してみますので宜しくお願い致します。
  • id:iwana1999
    済みません、アドレスを間違えておりました。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません