0
VBA DOM oblujectで新しくできました。ウェブページで特定のオプションを選択しようとしています。不幸にも、そのオプションには、内部関数の値を除いてページ内の他のオプションと同じID名があります。ここ ウェブコード:VBA(IE 11)を使用してonlick Webページオプションの値を変更します。
<table class="stati_check" id="ctl00_NetSiuCPH_ctl25">
<tr>
<td>
<span class="check">
<INPUT onclick="if (!boxWorkflow_rbSelect(this)) return;setTimeout('__doPostBack(\'ctl00$NetSiuCPH$ctl25$ctl00$WorkflowState\',\'\')', 0)" tabIndex=0
id=ctl00_NetSiuCPH_ctl25_ctl00_WorkflowState type=radio
value=ONVALIDAPROOF name=ctl00$NetSiuCPH$ctl25$ctl00$WorkflowState>
</span>
<td>
<span class="check">
<INPUT onclick="if (!boxWorkflow_rbSelect(this)) return;setTimeout('__doPostBack(\'ctl00$NetSiuCPH$ctl25$ctl01$WorkflowState\',\'\')', 0)" tabIndex=0
id=ctl00_NetSiuCPH_ctl25_ctl01_WorkflowState type=radio
value=ONANNULA1 name=ctl00$NetSiuCPH$ctl25$ctl01$WorkflowState>
</span>
</td>
</tr>
</table>
ように2つのIDが同じである見ることができるので、私はVBAのコード行を実行する場合:それは唯一の最初のオプションを選択します
Set pdr_button = ie.Document.getElementById("ctl00_NetSiuCPH_ctl25_ctl00_WorkflowState").click
を、しかし、私値 "ONANNULA1"のものを選択しようとしています。 私は削除/ setatributeで試してみた:
Set Annulla_Button = ie.Document.getElementById("ctl00_NetSiuCPH_ctl25_ctl00_WorkflowState")
Annulla_Button.removeAttribute ("value")
Annulla_Button.setAttribute ("value"), "ONANNULLA1"
Annulla_Button.Click
結果が何も選択されないことですが。
誰かが私を助けることができますか?あなたの忍耐
あなたは試すんでした:セットAnnulla_Button = ie.Document.getElementById( "ctl00_NetSiuCPH_ctl25_ctl00_WorkflowState")(1) – h2so4
@ h2so4 - getElementByIdは要素のコレクションを返しません。単一の要素を返します。 –
最初にテーブルを選択してから、テーブルのすべての入力タグを返して値を確認してください。例えば。 'set elements = ie.document.getelementByID(" ctl00_NetSiuCPH_ctl25 ")。getElementsByTagName(" input ")'次に、要素コレクションを反復して、値があなたが望むときに見つけます。 –