1
私は現在、ウェブサイトを開き、ドロップダウンリストの値を選択して検索するスクリプトを作成しています。値の選択に問題がありますドロップダウンリストで、以下の私のVBSコード:DropDownListコントロールのVBSを使用してウェブページのドロップダウンリストの値を選択
Dim IE
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = 1
IE.navigate "https://website.com/form.aspx"
Do
WScript.Sleep 10
Loop While IE.ReadyState <4 And IE.Busy
'Button to access form
Set SLTOI = IE.document.getElementByID("ctl00_m_g_4e7438b0_6aba_44b0_a0a1_f49486f81665_FormControl0_V1_I1_S1_I1_B1")
SLTOI.click
'Dropdownlist element
Set SPCI = IE.document.getElementByID("ctl00_m_g_4e7438b0_6aba_44b0_a0a1_f49486f81665_FormControl0_V1_I1_S2_I2_D7")
For Each opt In SPCI.options
MsgBox opt.value
If opt.value = "ION CISCO" Then
opt.Selected = True
Else
opt.Selected = False
End If
Next
ソースは、(IEの要素を検査するために開発者がオプションを使用して)以下れる
<SELECT tabIndex=0 title="" class="v_utCmzxtdUQZu9e3j_0 n_utCmzxtdUQZu9e3j_0 bb_utCmzxtdUQZu9e3j_0 d3_utCmzxtdUQZu9e3j_0" id=ctl00_m_g_4e7438b0_6aba_44b0_a0a1_f49486f81665_FormControl0_V1_I1_S2_I2_D7 style="DIRECTION: ltr" onfocus="return (DropDownList.OnFocus(this, event));" onblur="return (DropDownList.OnBlur(this, event));" onchange="return (DropDownList.OnChange(this, event));" OriginalId="V1_I1_S2_I2_D7" FormId="ctl00_m_g_4e7438b0_6aba_44b0_a0a1_f49486f81665_FormControl0" ViewDataNode="12" direction="ltr" wrapped="true" ScriptClass="DropDownList"><OPTION value=""></OPTION><OPTION value="ION CISCO" selected>ION CISCO</OPTION></SELECT>
コードが正しく実行されますが、値ドロップダウンリストフィールドで選択されていません(Forの中にMsgboxを追加して、コードは実行されますが、Forはまったく入力されません)、リストから値を手動で選択して別の値を選択しようとすると、リストでは選択されていないクリアボタンをクリックしない限り、スクリプトを実行してリストを作成しているようです。
私のコードをどのように動作させることができるかについてのアイデアは、「FireEvent( "onchange")」を選択した後に使用しようとしましたが、動作しませんでした。
ご協力いただければ幸いです!
は、私は彼らがタイプバリアントあるとして特に何かなどの変数を暗くする必要は、決してありませんVBSを知っているから、お返事ありがとうございObjectとしてではなく、バリアントまた、あなたはIEを宣言する必要があります選択された値を変数に設定しようとした回数が少なくなってから、選択を試みましたが、良い結果は得られませんでした:(。 – pahb90
あなたは正しいです。通常は変数を宣言する必要はありませんが、それは悪いものを壊すよりも良い習慣を始める方が簡単です。 –