VBAでChromeをSeleniumで自動操作するプログラムを書いております。
下にあるループ処理を2,000回程度繰り返したいのですが、
500回目あたりからだんだんと1ループにかかる時間が長くなり、最後には止まってしまいます。
調べてみたのですが、IE操作での解決策ばかりで解決には至りませんでした。
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14224808844
Set driver = Nothing というのが有効そうとわかったのですが、こちらも使い方がわかりませんでした。
わかる方、ご教授いただけますとありがたいです。
VBA
1'ループ処理 2 3 Dim i As Integer 4 Dim tim As Integer 5 6 i = 2 7 tim = i 8 9 10 Do While tim = i 11 12 time = 1500 13 Sleep time 14 15 '新規作成 16 17 driver.FindElementByCss("body > div.container > div > button").Click 18 19 'キーワード 20 21 driver.FindElementByCss("#inputKws").SendKeys Cells(i, 2) 22 23 24 '除外ワード 25 26 driver.FindElementByCss("#inputKwes").SendKeys Cells(i, 3) 27 28 29 '送料無料のみ 30 31 If Not Cells(i, 4) = "" Then 32 33 driver.FindElementByCss("body > div.container > div > form > div:nth-child(5) > div > label > input").Click 34 35 End If 36 37 38 39 '=============================== 40 41 42 '商品状態 43 44 45 '新品、未使用 46 47 If Cells(i, 5) = "" Then 48 49 driver.FindElementByCss("body > div.container > div > form > div:nth-child(6) > div:nth-child(2) > label > input").Click 50 51 End If 52 53 54 '未使用に近い 55 56 If Cells(i, 6) = "" Then 57 58 driver.FindElementByCss("body > div.container > div > form > div:nth-child(6) > div:nth-child(3) > label > input").Click 59 60 End If 61 62 63 '目立った傷や汚れなし 64 65 If Cells(i, 7) = "" Then 66 67 driver.FindElementByCss("body > div.container > div > form > div:nth-child(6) > div:nth-child(4) > label > input").Click 68 69 End If 70 71 72 'やや傷や汚れあり 73 74 If Cells(i, 8) = "" Then 75 76 driver.FindElementByCss("body > div.container > div > form > div:nth-child(6) > div:nth-child(5) > label > input").Click 77 78 End If 79 80 81 '傷や汚れあり 82 83 If Cells(i, 9) = "" Then 84 85 driver.FindElementByCss("body > div.container > div > form > div:nth-child(6) > div:nth-child(6) > label > input").Click 86 87 End If 88 89 90 '全体的に状態が悪い 91 92 If Cells(i, 10) = "" Then 93 94 driver.FindElementByCss("body > div.container > div > form > div:nth-child(6) > div:nth-child(7) > label > input").Click 95 96 End If 97 98 99 100 '=============================== 101 102 103 'フリマ 104 105 106 'メルカリ 107 108 If Cells(i, 11) = "" Then 109 110 driver.FindElementByCss("body > div.container > div > form > div:nth-child(7) > div:nth-child(2) > label > input").Click 111 112 End If 113 114 115 'ラクマ 116 117 If Cells(i, 12) = "" Then 118 119 driver.FindElementByCss("body > div.container > div > form > div:nth-child(7) > div:nth-child(3) > label > input").Click 120 121 End If 122 123 124 'オタマート 125 126 If Cells(i, 13) = "" Then 127 128 driver.FindElementByCss("body > div.container > div > form > div:nth-child(7) > div:nth-child(4) > label > input").Click 129 130 End If 131 132 133 'ヤフオク 134 135 If Cells(i, 14) = "" Then 136 137 driver.FindElementByCss("body > div.container > div > form > div:nth-child(7) > div:nth-child(5) > label > input").Click 138 139 End If 140 141 142 'PayPayフリマ 143 144 If Cells(i, 15) = "" Then 145 146 driver.FindElementByCss("body > div.container > div > form > div:nth-child(7) > div:nth-child(6) > label > input").Click 147 148 End If 149 150 151 '=============================== 152 153 154 155 156 '下限価格 157 158 driver.FindElementByCss("#inputPmin").SendKeys Cells(i, 16) 159 160 161 '上限価格 162 163 driver.FindElementByCss("#inputPmax").SendKeys Cells(i, 17) 164 165 'アラート名 166 167 If Not Cells(i, 18) = "" Then 168 169 driver.FindElementByCss("body > div.container > div > form > div:nth-child(10) > div > label > input").Click 170 driver.FindElementByCss("#inputName").SendKeys Cells(i, 18) 171 172 End If 173 174 175 'アラートのプレビュー 176 177 driver.FindElementByCss("body > div.container > div > form > button").Click 178 179 '登録確定 180 181 time = 1500 182 Sleep time 183 184 driver.FindElementByCss("body > div.container > div > div:nth-child(3) > button").Click 185 186 187 188 '判定 189 190 i = i + 1 191 192 If Cells(i, 2) = "" And Cells(i, 23) = "" And Cells(i, 24) = "" Then 193 194 tim = i - 1 195 196 Else 197 198 tim = i 199 200 End If 201 202 203 time = 3000 204 Sleep time 205 206 207 208 209 Loop
あなたの回答
tips
プレビュー