2017-10-25 9 views
0

私はドロップダウン選択を自動化できる自動ホットキースクリプトを作成中です。私は何が起こっているのか分からないが、それは失敗しているようだ。私は、デフォルト値を追加するだけで情報を読み取るためのさまざまな方法を試しましたが、それでもドロップダウンボックスの値は変更されません。autohotkeyドロップダウン選択がウェブサイトで動作しない

ここはコードの始まりです。

url:= "first page" 
URLElegibility := "Second Page" 
counter := 0 

Sleep 9000 
; create ie instance 
ie := ComObjCreate("InternetExplorer.Application") 
ie.Visible := true ; This is known to work incorrectly on IE7. 

loginHL(url) ;login to the website 
Sleep 2000 
SigningIn() ;Sign into site 
loginHL(URLElegibility) ; log into second site this just pushes the site to go to a second link 

selectObj := ie.document.getElementById("payerDropDown").options 
Sleep 2500 

selectItem := "bad" 
While !(InStr(selectItem,"Value to Get")) ; 
{ 
index := A_Index 
selectItem := selectObj[A_Index].text 

MsgBox "Error is here it goes on a infinite loop trying to find the value to get" 
} 
index := selectObj[index].value 
ie.document.getElementById("payerDropDown").value := index 

次に、これらの方法を試してみてください。

MsgBox "Slelected value" 
ie.document.getElementById("payerDropDown").focus() 
ie.document.getElementById("payerDropDown").value := 4 
ie.document.getElementById("payerDropDown").value = 4 
Sleep 2500 
MsgBox "Slelected index" 
ie.document.getElementById("payerDropDown").focus() 
ie.document.getElementById("payerDropDown").selectedIndex = 1 
ie.document.getElementById("payerDropDown").selectedIndex := 4 
Sleep 2500 

ここで間違っていることはわかりません。私はチュートリアルを見ており、これはうまくいくはずです。誰かが私が逃していることや間違っていることについてアドバイスをしていますか?

+0

なぜ 'A_Index'を' Loop'なしで使用しているのかはわかりません。あなたのwhile条件は決して 'true'と評価されないので、無限ループをしているように見えます。あなたの例は不完全なので、誰でもあなたが描いている問題を再現することは不可能です。おそらく 'ComObjConnect'や他の方法で接続していますか?そして、おそらくあなたがアクセスしようとしているHTMLに問題があります。 [最小限で完全で検証可能なサンプルを作成する方法](https://stackoverflow.com/help/mcve)を参照してください。 –

+0

Iコードに開始と終了を追加しました。 A_Indexは、私がそれを使用する理由である形式で選択ドロップダウンリストのために以前から使用されてきました。ドロップダウンからselectItemが必要なテキストと等しくなると、while条件がtrueになります。私はその後、インデックスを使用してそのインデックスに切り替えます。 –

+0

'A_Index'は[Loop](https://autohotkey.com/docs/commands/Loop.htm)内でのみ動作します。あなたは 'loop'を持っていないので、' A_Index'を使うことはできません。 –

答えて

0

よく起こったのは、Webページがフォームを使用していることです。私はフォーム内の内部ページを対象とすることができ、そこから情報を記入することができました。これらのhtml形式は小さな痛みであると信じるのは難しいです。

関連する問題