jsonファイルの変換が完了するのを待ってから、自動的にダウンロードします。以下のPythonコードが動作します。Selenium - Webページでファイル変換を完了した後、ボタンをクリック
import time
from selenium import webdriver
chrome = webdriver.Chrome()
chrome.get('https://json-csv.com/')
load_data = chrome.find_element_by_id('fileupload')
load_data.send_keys('C:\\path_to_file')
load_data.submit()
# Wait arbitrary duration before downloading result
time.sleep(10)
get_results = chrome.find_element_by_id('download-link')
get_results.click()
chrome.quit()
しかし、私はスクリプトを実行するたびに、私は、ページがファイルを変換を完了するのは十分以上である10秒、待つ必要があります。これは時間効率的ではありません。ページが5秒で新しいファイルの読み込みを終了することがあります。
ファイルの変換が完了したら、ダウンロードボタンをクリックする方法を教えてください。 ElementNotVisibleException:メッセージ:表示されていない要素を私は同様の問題にsolutionを読んだが、それはエラーを投げた
を試してみた何
。
もthe documentation example次試してみました:from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
...
wait = WebDriverWait(chrome, 10)
get_result = wait.until(EC.element_to_be_clickable((By.ID, 'download-link')))
get_result.click()
これは代わりに、いくつかのナンセンス.tmp
ファイルをダウンロードします。
編集して再試行しましたが、残念ながら.tmpファイルが返されます。さらに、私は、スクリプトが "待っている"ようには見えないことにも気付きました。すぐにtmpファイルをダウンロードして終了します。 –