前提
エクセルのVBAについてです。
セレニウムを使ってアリエクスプレスというサイトにログインしたいのですが、なぜかログインできる時とできない時があります。
ログインできていない状態で次の動作をするとエラーになります。
ここで、エラーがでた時にエラーが出る「前」まで戻るようなコードを書くことはできますか?
エラーがでたときはログインをもう一度繰り返したいです。エラーが出なくなるまで繰り返したいです。
エラーが出なくなったらそのループを抜けるような動きを実装したいのですが、そういうことが可能なのでしょうか?
「On Error GoTo ErrorHandler」よりも前に「ErrorHandler:」を置いて、エラーが出た時にそこに飛びたいです。
このやり方が不可能なのであれば、違うやり方を教えて頂きたいです。
発生している問題・エラーメッセージ
エラーメッセージの問題と言うよりはエラーの処理の仕方の問題です 下記のコードを実行すると、エラーが出ていない状況でも「ErrorHandler:」を実行してしまいます・・・
該当のソースコード
VBA
1Sub test() 2 3Dim Driver As New Selenium.WebDriver 4Dim i As Long 5 6SafeOpen Driver, Chrome 7 8Driver.Get ("https://login.aliexpress.com/?spm=a2g0o.cart.0.0.699938daanKXzt&return_url=https://www.aliexpress.com/p/shoppingcart/index.html") 9Driver.Wait 2000 10 11'ログイン作業 12Driver.FindElementByXPath("//*[@id=""fm-login-id""]").SendKeys "inaba.dangan@gmail.com" 13Driver.Wait 3000 14Driver.FindElementByXPath("//*[@id=""fm-login-password""]").SendKeys "inaba178" 15Driver.Wait 3000 16Driver.FindElementByXPath("//*[@id=""root""]/div/div/div/div[2]/div/div/button[2]").Click 17Driver.Wait 2000 18 19'エラーがでた時の再ログイン作業 20ErrorHandler: 21 Driver.FindElementByXPath("//*[@id=""root""]/div[1]/div[1]/div/div/div[2]/a[2]").Click 22 Driver.FindElementByXPath("//*[@id=""fm-login-id""]").SendKeys "inaba.dangan@gmail.com" 23 Driver.Wait 3000 24 Driver.FindElementByXPath("//*[@id=""fm-login-password""]").SendKeys "inaba178" 25 Driver.Wait 3000 26 Driver.FindElementByXPath("//*[@id=""root""]/div/div/div/div[2]/div/div/button[2]").Click 27 Driver.Wait 2000 28 29 30'カート画面遷移 31Driver.Get ("https://www.aliexpress.com/p/shoppingcart/index.html") 32Driver.Wait 1000 33 34'チェックボックス入れて支払い画面へ 35 36On Error GoTo ErrorHandler 37 Driver.FindElementByXPath("//*[@id=""root""]/div[1]/div[1]/div[1]/div[3]/div/div/div/div[2]/div/div[1]/label/span").Click 38Driver.Wait 1000 39 40Driver.FindElementByXPath("//*[@id=""root""]/div[1]/div[1]/div[2]/div[1]/button").Click 41Driver.Wait 1000
試したこと
試すアイデアが思いつきませんでした。
補足情報(FW/ツールのバージョンなど)
Windows10
chrome
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/10/23 05:06