どなたかUWSCの使い方で質問です。


UWSCというソフトを使ってWEB上ボタンを
選択したいと思っております。

操作したい先は、このリンクでデモ口座という
ボタンを押した先のです。
http://jp.demo.highlow.net/?lang=ja-JP

右上の通貨の選択リストを操作したいと思っておりますが

odtab = gid( ie, "assets")
odtab.Value="GBPJPY"
odtab.focus()
kbd( VK_DOWN, CLICK, 100 )

など試しましたがうまくいきません。

Valueでテキスト上では通貨の選択が出来るように
なったのですが、その後のイベントが発生しないため
サイトに変化が起こらないのです。

因みに、fireEvent("onChange")なども試してみたの
ですが、ダメでした。
また、For ~ To でキーボードダウンでリスト選択
させようとしても何故か上手く動きません。

類似質問があります。
http://q.hatena.ne.jp/1401323207#a1230483

現在稼働しません、踏まえた回答を
iMacrosなどの他のマクロソフトは、回答対象外です。

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2014/09/15 06:58:32
  • 終了:2014/09/16 02:56:47

ベストアンサー

id:language_and_engineering No.1

lang_and_engine回答回数170ベストアンサー獲得回数632014/09/15 11:35:35

ポイント500pt

前と同じコードでちゃんと動いてるんですけどね・・・

(コメント欄を参照)

id:language_and_engineering

補足・・・

補足です。

こういう質問の場合,実際に動くコードを提示してもらうことが全てです。

「コードをこう変えてみたら動くんじゃないでしょうか?(試してません)」
ではなく
「下記のコードで実際に動きました。コードをどうぞ」
という回答をもらうことが大事です。

そうしないと,ポイントを浪費してしまう可能性が。

質問文に,「実際に動くコードを提示してくださった方にのみポイントを差し上げます」のように書くことがコツです。

2014/09/15 14:37:43
id:tarou_imo

なるほどですね。アドバイスありがとうございます!!

具体的で前向きな提案ありがとうございました。

確かにおっしゃるように、こちらから成果に対する
説明が重要ですね。曖昧になっていたようです。

また、実際にテストしていただいてようで
ありがとうございます。これは、私にとって貴重な情報です。

私の方でも再度動作確認を行いまた報告させていただきます。

2014/09/16 02:01:51

その他の回答(1件)

id:language_and_engineering No.1

lang_and_engine回答回数170ベストアンサー獲得回数632014/09/15 11:35:35ここでベストアンサー

ポイント500pt

前と同じコードでちゃんと動いてるんですけどね・・・

(コメント欄を参照)

id:language_and_engineering

補足・・・

補足です。

こういう質問の場合,実際に動くコードを提示してもらうことが全てです。

「コードをこう変えてみたら動くんじゃないでしょうか?(試してません)」
ではなく
「下記のコードで実際に動きました。コードをどうぞ」
という回答をもらうことが大事です。

そうしないと,ポイントを浪費してしまう可能性が。

質問文に,「実際に動くコードを提示してくださった方にのみポイントを差し上げます」のように書くことがコツです。

2014/09/15 14:37:43
id:tarou_imo

なるほどですね。アドバイスありがとうございます!!

具体的で前向きな提案ありがとうございました。

確かにおっしゃるように、こちらから成果に対する
説明が重要ですね。曖昧になっていたようです。

また、実際にテストしていただいてようで
ありがとうございます。これは、私にとって貴重な情報です。

私の方でも再度動作確認を行いまた報告させていただきます。

2014/09/16 02:01:51
id:gizmo5 No.2

gizmo5回答回数484ベストアンサー獲得回数1382014/09/15 12:53:30

ポイント50pt

該当のデモのページを表示していて気になったのですが、ページ全体の表示が完了するまでのレスポンスがかなり悪いです。
SELECT タグの onChange ハンドラの登録も JavaScript でやっているようですし、UWSC のプログラムが動くタイミングが早すぎて onChange のハンドラが登録される前にクリックしてしまっているのではないでしょうか。
IE で navigate した後に極端なくらい長い時間 sleep させて動作を確認してみたらどうでしょうか。

id:tarou_imo

テストしてみましたが、残念ながら原因は別のものでした。ありがとうございます。

2014/09/16 02:57:59
  • id:language_and_engineering

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


    // アクセスしたいページの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 )


    // HIGH/LOWタブをクリック
    odtab = gid( ie, "ChangingStrike")
    odtab.click()
    sleep( 3 )


    // 通貨切り替えボックス内の何番目を押したいか(0番目から)
    cur_index = 5

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

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

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

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

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