fc2ブログ

フォーム操作1(テキストボックス、ボタン)

ここから2回に分けて、フォームの操作を扱います。このフォームの操作ができるようになれば、IEの操作はほぼ制覇したことになります。まずはテキストボックスへの入力とボタン押下です。ボタン押下とは、正確にはSubmit処理になります。
スポンサーリンク
  ' 入力する
Sub TypeValue(ByVal domId As String, ByVal value As String)
Dim inputElm As MSHTML.IHTMLInputElement = DirectCast(GetElementById(domId), MSHTML.IHTMLInputElement)
inputElm.value = value
System.Threading.Thread.Sleep(100)
End Sub

' ボタンを押下する
Function TryClickSubmit(Optional ByVal domId As String = "") As Boolean
Return TryClickSubmit(0, domId)
End Function
Function TryClickSubmit(ByVal id As Integer) As Boolean
Return TryClickSubmit(id, "")
End Function
Private Function TryClickSubmit(ByVal id As Integer, ByVal domId As String) As Boolean
Try
ClickSubmit(id, domId)
Return True
Catch ex As TimeoutException
log.Warn("ClickSubmitに失敗しました。", ex)
End Try
Return False
End Function
Sub ClickSubmit(Optional ByVal domId As String = "")
ClickSubmit(0, domId)
End Sub
Sub ClickSubmit(ByVal id As Integer)
ClickSubmit(id, "")
End Sub
Private Sub ClickSubmit(ByVal id As Integer, ByVal domId As String)
If domId = "" Then
Dim docTmp = CurrentDoc
docTmp.forms(id).submit()
Else
GetElementById(domId).click()
End If
WaitIE()
End Sub

Protected Function GetElementById(ByVal domId As String) As MSHTML.IHTMLElement
Dim rtn As MSHTML.IHTMLElement
' IEのgetElementByIdはidだけでなくnameも参照する
rtn = CurrentDoc.getElementById(domId)
Return rtn
End Function
TypeValueメソッドの引数domIdにはテキストボックスのinput要素のid属性を、引数valueには入力する文字列を指定します。

TryClickSubmitメソッド、ClickSubmitメソッドは2種類の使い方があります。一つは、formタグの番号を指定する方法です。formタグをHTMLの上から数えて何番目にあるかを指定し、そのformをSubmitします。もう一つは、ボタンのinput要素のid属性を文字列で指定する方法です。idという名称ですが、数値ではなく文字列であることに注意してください。これらはどちらを使っても構いません。
スポンサーリンク
<<リンクをクリックする | ホーム | フォーム操作2(ラジオボタン、チェックボックス、セレクトボックス)>>
コメント(0)
コメントの投稿
トラックバック(0)