値を指定のテキストボックスに入力したいです。
入力することは可能なのですが、ボタン「submit」を押すとフォームがランダムで変更されます。
ランダムで変更されるフォームを毎回正しい指定個所に入力するいいロジックはないでしょうか。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
位置もname、id もランダムですので、それでは判断できませんね。
前の要素(ラベル)に、"Address" "Email" ・・・などの標題がついてますので、それで判断すればいいのでは。
前の要素は element.previousElementSibling で取得できます。
時間があったのコードを書いて試してみました。
前の要素より、親要素の innerText で標題を取得したほうがシンプルですね。(すぐ前の要素ではないようなので。)
vba
1Public Sub Test() 2 Dim col As New Collection 3 Dim objIE As Object 4 Dim el As Object 5 6 col.Add "○○株式会社", "Company Name" 7 col.Add "社長", "Role in Company" 8 col.Add "太郎", "First Name" 9 col.Add "山田", "Last Name" 10 col.Add "abc@abc.com", "Email" 11 col.Add "012-345-6489", "Phone Number" 12 col.Add "東京都", "Address" 13 14 Set objIE = CreateObject("InternetExplorer.Application") 15 objIE.Visible = True 16 objIE.navigate "http://www.rpachallenge.com/" 17 Call IEWait(objIE) 18 19 For Each el In objIE.document.forms(0).getElementsByTagName("input") 20 If el.Type = "text" Then 21 el.Value = col(el.ParentNode.innerText) 22 End If 23 Next 24End Sub 25 26'IEを待機する関数 27Function IEWait(ByRef objIE As Object) 28 Do While objIE.Busy = True Or objIE.readyState <> 4 29 DoEvents 30 Loop 31End Function
投稿2018/05/25 05:10
編集2018/05/25 12:19総合スコア33715
0
ランダムで変更されるとはフォームのなにが変更されるんでしょうか
また、正しい指定箇所、とはどういった指定箇所なんでしょう
投稿2018/05/25 05:04
編集2018/05/25 05:06総合スコア87774
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。