vbaとseleniumを使ってedge の自動化を行おうとしております。
iframeで開かれるページのElement取得がうまくいきません。
対象ページは下記のような構成になっており、①②③Elementを操作したいのですが、
「実行時エラー'7'
NoSuchElementError
Element not found for Css=#SyozokuCode」と表示されます。-④
iframeを切り替える必要があると思うのですが、いろいろ試しましたが、idが指定されていないiframeへの切り替え方がわかりません。方法を教えていただけないでしょうか。
html
1<iframe class="ui-helper-hidden" name="XW_BEAT" src "../x/lib/blankhtm" momo="・・・" cd_frame_id_="・・・">... 2</iframe> 3 ・ 4 ・ 5<iframe src "javascript:'' tabindex> 6 ・ 7 ・ 8① <button id="output" clas="・・・">...</button> 9 ・ 10 ・ 11② <input class="txt SyozokuCode ・・・" id="SyozokuCode" size="・・・" title="・・・" type="text" maxlength="・・・" style="・・・"> 12③ <input type="checkbox id="chkKaiSyozoku" class="chkKaiSyozoku"> 13 ・ 14 ・ 15</iframe>
以下、試したコードです。
vba
1 Dim driver As New Selenium.WebDriver 2 driver.Start "edge" 3 driver.Window.Maximize 4 driver.Get "http://・・・top.htm" 5 6 ' ログイン 7 driver.FindElementById("XW_LOGIN_USER").SendKeys "・・・" 8 driver.FindElementById("XW_LOGIN_PW").SendKeys "・・・" 9 driver.FindElementById("XW_LOGIN").Click 10 Sleep 3000 11 12 ' 月次処理 13 driver.FindElementByCss("#xw35").Click 14 Sleep 3000 15 16 ' 月次社員一覧 17 driver.FindElementByCss("#XW_TABS > ul > li:nth-child(4)").Click 18 ' Frameの切り替え これが動かないので以降の FindElementBy が Not Found になる!? 19 driver.SwitchToFrame driver.FindElementByTag("iframe") 20 ' 所属を入力 ここで上記エラーが発生 21④ driver.FindElementByCss("#SyozokuCode").SendKeys "109" 22
回答2件
あなたの回答
tips
プレビュー