我的困境是,如果我使用遍歷洗牌WebElements的陣列沒有他們獲得舊
a=[]
a=driver.find_elements_by_class_name("card")
random.shuffle(a)
for card in a:
nextup=(str(card.text) + '\n' + "_" * 15)
do a bunch of stuff that takes about 10 min
第一輪作品,但後來我得到一個StaleElementException因爲它點擊鏈接,進入頁面差異。於是我切換到這一點:
a=[]
a=driver.find_elements_by_class_name("card")
i=0
cardnum=len(a)
while i != cardnum:
i += 1 #needed because first element thats found doesnt work
a=driver.find_elements_by_class_name("card") #also needed to refresh the list
random.shuffle(a)
nextup=(str(card.text) + '\n' + "_" * 15)
do a bunch of stuff that takes about 10 min
與這一個問題是我的變量,因爲在同一張卡可以點擊由於每次循環的洗牌。然後我添加了一個catch來檢查卡片是否已經被點擊,如果有卡片,繼續。聽起來像它會工作,但可悲的是,我變量計數這些,然後最終計數過去的指數。我想週期性地讓我回到1,但我不知道它是否會起作用。編輯:會做一個無限循環,因爲一旦所有點擊,我將是零,它將永遠不會退出。
我知道代碼的工作原理已經被廣泛測試,但是,機器人被禁止不被人類和隨機使用。這個腳本的基礎知識是通過一個類別列表,然後通過一個類別中的所有卡片。試圖隨機化的類別,但類似的困境,因爲刷新列表,你必須在每個循環像上述塊重做數組然後出現類別已完成的問題將再次點擊...任何意見將不勝感激。
你能顯示確定卡片是否被點擊的代碼?我想你只需要在那裏添加更多的條件。 (1)添加循環的最大數量。 (2)設i = i-1。 – Buaban
@Buaban如果「看」在nextup: –