0

私はこのウェブサイトからすべてのスプレッドシートをダウンロードしようとしていますが、そのサイトではアイテムをクリックしてからダウンロードボタンをクリックする必要があります。スプレッドシートはすべて同じIDで保存され、後に番号が増えます。私はこの問題を解決するためにwhileループを使用しようとしていますが、これを行う最良の方法であるかどうかはわかりません。whileループで.click()にセレンが掛かります

i = 0 
    while i < 13: 
     device = 'ctl00_LeftBarContent_lvLeftPanel_lbDevices_i' + str(i) 
     deviceElement = WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_id(device)) 
     deviceElement.click() 
     time.sleep(2) 
     downloadXpath = "ctl00_LeftBarContent_lvLeftPanel_btnDownload" 
     WebDriverWait(driver, 10).until(lambda driver: driver.find_element_by_id(downloadXpath)).click() 
     time.sleep(2) 
     i += 1 

現在、コードは、ダウンロードボタンをクリックするまで実行され、ファイルのダウンロードと、ボタンで、最終的に倍にたむろしているようです。私はクロムドライバーを使用しています。

ありがとうございます!

答えて

0

このコメントは、字下げに関するものです。あなたのコードをすべてインデントするか、インデントしないでください。

誤った例 'Hello Worldの':

i = 0 
    while i < 13: 
     print 'hello world' 
     i+=1 
'error unexpected indent' 

正しい例 'Hello Worldの':あなたの問題のためにそう

i = 0 
while i < 13: 
    print 'hello world' 
    i+=1 

'Hello world' 
'Hello world' 
'Hello world' 
'Hello world' 
etc... 

は、正しく問題をインデントして、再試行してください。それでも問題が解決しない場合は、すべてのコマンドの前後にいくつかの印刷ステートメントを投げて、どこに行き詰まっているのかを確認してください。ちょうど推測ですが、最初のダウンロードが完了した後、フレームを切り替えてからフレームを閉じる必要があります。

+0

チュートリアルを提供する代わりに、最初に結果のみを追加します。 – hennamusick

関連する問題